我在本地计算机 (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/etc/ssh/sshd_config
(或者在你的发行版中是什么)。这绝对属于serverfault。 - n. m.