Ubuntu上的X11转发错误,尽管它在Windows上工作



我有一个有趣的问题-在使用Xming的Windows上,我可以成功地将X11请求转发到我的客户端(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:~$

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

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

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

最新更新