Linux有问必答:如何修复“X11 forwarding request failed on channel 0”错误

Linux有问必答:如何修复“X11 forwarding request failed on channel 0”错误

问题: 当我尝试使用SSH的X11转发选项连接到远程主机时, 我在登录时遇到了一个 "X11 forwarding request failed on channel 0" (X11 转发请求在通道0上失败)的错误。 我为什么会遇到这个错误,并且该如何修复它?

首先,我们假设你已经正确启用了SSH的X11转发

如果你在登录时遇到"X11 forwarding request failed on channel 0" (X11 转发请求在通道0上失败),这里可能有不同的原因,解决的方法也不同。

方案一

出于安全原因,OpenSSH服务默认将X11转发请求绑定到本地回环地址上,并且在DISPLAY环境变量中将主机名设置为“localhost”。在这样的设定下,一些 X11客户端不能正确处理X11转发,这会导致报告中的错误。要解决这个问题,在/etc/ssh/sshd配置文件中加入下面这几行,它可以将X11转发请求绑定到外网卡地址上。

 
  
  1. $ sudo vi /etc/ssh/sshd_config

 
  
  1. X11Forwarding yes
  2. X11UseLocalhost no

重启SSH使设置生效:

 
  
  1. $ sudo /etc/init.d/ssh restart (Debian 6, Ubuntu or Linux Mint)
  2. $ sudo systemctl restart ssh.service (Debian 7, CentOS/RHEL 7, Fedora)
  3. $ sudo service sshd restart (CentOS/RHEL 6)

方案二

如果远程主机的SSH服务禁止了IPv6,那么X11转发失败的错误也有可能发生。要解决这个情况下的错误。打开/etc/ssh/sshd配置文件,取消对"AddressFamily all" (如果有这条的话)的注释。接着加入下面这行。这会强制SSH服务只使用IPv4而不是IPv6。(LCTT 译注:此处恐有误,AddressFamily 没有 all 这个参数,而 any 代表同时支持 IPv6和 IPv4,以此处的场景而言,应该是关闭IPv6支持,只支持 IPv4,所以此处应该是“注释掉 AddressFamily any”才对。)

 
  
  1. $ sudo vi /etc/ssh/sshd_config

 
  
  1. AddressFamily inet

再说一次,重启SSH服务来完成设置

原文发布时间:2014-10-15

本文来自云栖合作伙伴“linux中国”

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值