发布日期:2015-10-13 13:52 来源: 标签: Linux操作系统 Linux教程 Linux定时任务 Linux中修复X11错误
本章节我们主要学习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转发请求绑定到外网卡地址上。

$ sudo vi /etc/ssh/sshd_config

X11Forwarding yesX11UseLocalhost no

重启SSH使设置生效:

$ sudo /etc/init.d/ssh restart (Debian 6, Ubuntu or Linux Mint)
$ sudo systemctl restart ssh.service (Debian 7, CentOS/RHEL 7, Fedora)
$ 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”才对。)

$ sudo vi /etc/ssh/sshd_config

AddressFamily inet

再说一次,重启SSH服务来完成设置,谢谢阅读,希望能帮到大家

相关评论

专题信息
    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。本教程主要讲解Linux定时任务、Linux定时器、crontab命令等。