【问题标题】:X11 Forwarding Error on Ubuntu, Though It Works On WindowsUbuntu 上的 X11 转发错误,尽管它适用于 Windows
【发布时间】:2026-02-14 06:00:01
【问题描述】:

我有一个有趣的问题 - 在 Windows 上使用 Xming 我可以成功地将 X11 请求转发到我的客户端 (PC) 并且可以运行应用程序。但是,我最近在我的 PC 上安装了 Ubuntu 13.04,但不知何故我无法让它工作。

我的 /etc/ssh/ssh_config 有以下几行:

Host *
ForwardAgent yes
ForwardX11 yes

我尝试使用以下命令进行连接:

ssh -X -v username@xxx.xxx.xxx.xxx 

详细的输出告诉我:

X11 forwarding request failed on channel 0

我还执行了xhost + 来禁用客户端上的所有访问控制,但奇怪的是在我的客户端上DISPLAY 变量设置为:0,我无法用其他任何东西替换它,例如localhost:0甚至$Local_IP:0,当我这样做时,X11 将无法工作,请参阅下面的示例输出 - 我怀疑这可能会导致答案:

koray@koray-Latitude:~$ export DISPLAY=localhost:0 # $localip:0 doesn't work either
koray@koray-Latitude:~$ emacs
Display localhost:0 unavailable, simulating -nw
koray@koray-Latitude:~$

【问题讨论】:

标签: ubuntu ssh x11 x11-forwarding


【解决方案1】:

我解决了 - 这是一个身份验证问题。在服务器上执行以下行解决了这个问题:

$ xauth add ${client_ip}:0 . ${hex_key}
xauth:  creating new authority file /homes/${username}/.Xauthority

${client_ip} 是运行 X 服务器的客户端,${hex_key} 是 32 个字符的十六进制字符串。之后,在分配 $DISPLAY 环境变量后,我现在可以成功连接。

【讨论】: