假设我有计算机office
和home
。我想通过 ssh 从 连接到 并运行一个程序,home
该程序会在屏幕上打开一个窗口,比如说。可以吗?office
home
emacs
office
答案1
这取决于您在办公机器上拥有什么权限以及您希望程序在哪里执行。如果您愿意让程序使用办公机器的文件系统和 CPU,那么您只需执行带有 DISPLAY=:0 的命令即可,前提是您拥有相关权限(某些发行版会要求您在本地机器上登录后才能使用硬件)。
如果您希望程序在家中运行但在办公室显示,最好的方法是使用 SSH 的反向端口转发功能。这将允许您通过初始 SSH 连接从办公室重新连接到家中。您可以转发 X 的端口,但我认为有多个,然后您需要手动设置 $DISPLAY,所以我建议转发 SSH 端口。
请参阅 ssh 手册页中的 -R 选项。
这应该有帮助: http://www.howtoforge.com/reverse-ssh-tunneling
例如: user@home$ ssh -R 20000:localhost:22 office user@office$ ssh -p 20000 localhost
答案2
是的,这是可能的。您需要在 ssh 服务器(在您的情况下是家用计算机)上启用 X-Forwarding。
按照本教程操作:http://maketecheasier.com/use-ssh-x-forwarding-to-run-remote-apps/2009/06/22