Ubuntu 上的 X11 转发错误,尽管它适用于 Windows

Posted

技术标签:

【中文标题】Ubuntu 上的 X11 转发错误,尽管它适用于 Windows【英文标题】:X11 Forwarding Error on Ubuntu, Though It Works On Windows 【发布时间】:2013-08-05 14:48:32 【问题描述】:

我有一个有趣的问题 - 在 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:~$

【问题讨论】:

不是真正的编程问题,请尝试在SuperUser 或ServerFault 上提问 @user2062950 感谢您的重定向,我已将其克隆到超级用户 (superuser.com/questions/628480/…),我们也将其保留以供参考。 【参考方案1】:

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

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

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

【讨论】:

以上是关于Ubuntu 上的 X11 转发错误,尽管它适用于 Windows的主要内容,如果未能解决你的问题,请参考以下文章

Cygwin/X x11 从 Raspberry Pi 转发到 Windows

OS X 10.12.3 和 X11 转发到 ubuntu 的问题

如何在 WSL2 上设置工作 X11 转发 [关闭]

java 和 libGDX / LWJGL 游戏全屏尺寸错误,适用于 Ubuntu 上的多个显示器

如何将 X11 转发到运行在远程 linux 主机上的虚拟机?

错误:R 3.5.3 上的 RcppArmadillo 包延迟加载失败