如何通过ssh从终端打开远程python程序?

我输入ssh -X name@blah.edu并要求输入密码,我输入并登录。

 name@blah.edu:~$ program.py 

然后没有任何反应,它应该实际弹出。 为什么会发生这种情况,我该如何解决?

问题是SSH连接不通过连接转发X11命令。

如果您用于连接的计算机正在运行Linux(或其他具有X的操作系统),则只需在调用SSH时传递-X参数。

如果要与Microsoft Windows连接,则需要一个可以将X11命令转换为Windows API命令的程序。 试着看看XMing或cygwin 。

您可能还需要在/etc/ssh/sshd_config添加/取消注释以下行:

 X11Forwarding是的

如果没有这个,-X标志就没用了。

您可能需要在SSH服务器的配置文件/etc/ssh/sshd_config启用X转发:

X11Forwarding yes

如果您无权访问此文件,我担心您必须要求您的系统管理员启用它。

听起来你的DISPLAY变量已经设置好了。 当我通过手机(通过X转发)连接到我的机器并执行以下操作时:

 oli@bert:~$ echo $DISPLAY localhost:10.0 

虽然这不是保证,但X转发倾向于使用高显示数字。

如果您的~/.bashrc设置为覆盖显示,您可能会看到类似的内容:0

连接后,您可以猜测并覆盖DISPLAY变量到localhost:10.0

 export DISPLAY=localhost:10.0 

找到您在本地bash文件中设置显示的位置。


我应该补充一点,可以在SSHd设置中关闭X转发( /etc/ssh/sshd_config ),这样你也可以检查一下。

就像你在电脑里一样
ssh -X remotehost python remotepythonprogram.py

要查看程序代码,
ssh -X remotehost less remotepythonprogram.py

如果你想转发X,Oliver的解决方案就是要走的路,但要明白这可能是带宽密集型的。

另一种解决方案是使用命令行编辑器,如vimnano 。 就个人而言,我会选择vim 。 它确实有一个更陡峭的学习曲线,但是一旦你超越了它,你将不想回到其他任何东西=)你可以通过执行vimtutor来获得关于基础知识的教程来开始学习它。