尽管在 Windows 上可以正常运行,但在 Ubuntu 客户端上却出现 X11 转发错误

尽管在 Windows 上可以正常运行,但在 Ubuntu 客户端上却出现 X11 转发错误

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

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

Host *
ForwardAgent yes
ForwardX11 yes

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

ssh -X -v [email protected] 

详细输出显示:

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:~$

答案1

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

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

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

相关内容