没有SSH转发X11?如何在运行X Server的另一台PC上运行本地应用程序?

时间:2013-12-12 16:14:10

标签: linux ssh cygwin x11 portforwarding

我正在使用Cygwin X和Debian。我可以通过SSH转发我的X会话但发生的事情是我似乎偶尔在X会话中松开显示转发(从Cygwin到Linux)。所以我猜这是Cygwin的一个补充,因为当我使用Linux到Linux时,我在同一个ssh会话中从未放松过X11显示。

当X11转发的应用程序尝试分叉另一个进程时,也会发生这种情况。我可以说运行Thunderbird并点击电子邮件中的网址。自然Thurderbird将尝试启动默认的Web浏览器,但它没有使用Cygwin X服务器,这是我在SSH会话因各种原因放弃显示时得到的消息,我无法知道。

“错误:无法打开显示:localhost:10.0”

另一个问题是,由于ssh放弃了显示变量,我必须重新启动我的ssh会话以使其工作,这也会杀死我在ssh会话期间可能运行的其他应用程序。

无论如何,经过一段时间的努力,我想我能够在不使用ssh转发的情况下在另一个显示器上打开我的应用程序。我在内部使用它,它几乎是一个封闭的局域网,所以我现在不担心安全性。我只是希望能够在Linux上运行应用程序,然后在运行Cygwin的Pc上查看应用程序。

我尝试了基本的DISPLAY变量,例如“export DISPLAY = MY_CYGWIN_PC_IP:0.0”(在Linux Pc上),但它不起作用。

所以我想知道如何实现这一目标。达到我需要的适当设置是什么?

2 个答案:

答案 0 :(得分:2)

你的方向还可以。导出DISPLAY就是你想要的。但这还不够。

在目标上,您需要输入

xhost +from.where.the.windows.are.coming.com

它赋予X服务器允许来自此计算机的远程窗口的权限。

小心,它确实不安全!可能的攻击者不仅可以使用您显示的窗口,还可以控制您的鼠标/键盘。但是对于简单的解决方案,或者如果你可以信任远程机器你之间的网络,它可能没问题。

如果没有,则基于预共享密钥存在高级授权。它被命名为xauth。 Google for xauth。

Xorg服务器有一个禁用远程窗口的选项,并且有一些发行版(f.e. ubuntu!)默认打开此选项。你可以测试它 - 如果你可以telnet到tcp端口6000,它是允许的。

答案 1 :(得分:2)

如果您使用ssh -X,请不要。使用ssh -Y

Cygwin XWin server randomly loses connection