X11转发:坏的文件编号错误?

3

我在本地计算机 (Windows 7) 上运行了 XWin 服务器。当我打开 cygwin shell 并输入 emacs,预期会弹出一个图形化的 emacs 显示界面。
现在我想让一个远程应用程序显示在本地计算机上。在 cygwin 中,我键入:

ssh -X root@.....

我也尝试过使用 ssh -Y root@...,但结果相同。我输入密码后,会出现以下提示信息:

/usr/bin/xauth:  creating new authority file /root/.Xauthority

然后我尝试打开xeyes。这是我期望在我的本地机器上弹出一个窗口,里面有会跟随鼠标光标移动的谷歌眼睛。但是我遇到了一些神秘的错误信息:

root@debian:~# xeyes
connect /tmp/.X11-unix/X0: Bad file number
Error: Can't open display: localhost:10.0

这是我在Linux上的故障排除能力的极限:

root@debian:~# echo $DISPLAY
localhost:10.0

我对Linux非常陌生。如何让远程服务器知道我的本地XWin服务器?似乎应该很简单,因为我已经通过ssh建立了连接。

更新
所以我猜cygwin有这个“特性”,如果你将DISPLAY设置为:0,它的意思不同于localhost:0。按建议将DISPLAY设置为127.0.0.1:0或localhost:0即可解决问题。


不确定这是否能解决您的问题,但您可能希望使用 ssh -Y root@... 启用可信的 X11 转发。 - Frédéric Hamidi
当我通过ssh登录到远程服务器时,echo $DISPLAY输出localhost:10.0。 - Mark
这可能属于服务器故障,仅供参考。 - thenoviceoof
你应该在远程机器上允许X11转发,参见/etc/ssh/sshd_config(或者在你的发行版中是什么)。这绝对属于serverfault。 - n. m.
2个回答

2

错误更正:XWin是Cygwin的一部分,不知道为什么我说错了。 - thenoviceoof

1

我认为这里有两个错误信息。第一个是因为SSH客户端无法在本地机器上连接到您的X显示器(/tmp/.X11-unix/X0表示:0)。这导致了服务器端的第二个错误。如果您在本地运行cygwin xeyes会发生什么?


在本地运行xeyes会导致我的桌面上出现瞪眼睛。 - Mark
我不明白为什么SSH无法连接到我的显示器。SSH正在本地运行,XWin服务器也是如此。如果像xeyes这样的本地程序可以与XWin通信,那么SSH不应该也能够吗? - Mark
确实很奇怪,您可能想尝试在http://x.cygwin.com/docs/faq/cygwin-x-faq.html#q-ssh-no-x11forwarding上尝试这些方法,或者尝试更新cygwin。 - Antti Haapala -- Слава Україні

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接