通过ssh访问Raspbian wheezy桌面GUI

13

我有一个树莓派,一直通过SSH访问,但现在需要在上面运行带有图形用户界面(GUI)的Python程序。我不知道如何通过SSH实现这一点。通常我会输入startx来访问我的树莓派桌面GUI。有没有像这样可以在SSH上操作的方法?

谢谢!


应该移动到UL - ManuelSchneid3r
2个回答

11

kjprice提到的方法只会显示您在远程主机上启动的应用程序。如果您想查看完整的桌面,可以创建一个新的X服务器或者使用Xephyr来嵌套一个X服务器在当前正在使用的服务器中。

首先创建一个新的嵌套X服务器:

user@host $ Xephyr :1 -screen 800x600 &

应该会出现一个名为“Xephyr on:1”的窗口。通过SSH进入远程主机并将显示转发到创建的显示器:
user@host $ DISPLAY=:1 ssh -Y username@remotehost

现在在远程主机上启动一个会话,以我的案例为例是LXDE:

user@remotehost $ lxsession

您现在应该可以在Xephyr中看到桌面。hf


你的解决方案完美地启动了远程xsession。然而,我无法干净地退出。当我尝试注销xsession时,lxsession程序停止了,但窗口仍然保持打开和操作(似乎桌面主题已卸载)。关闭会话的首选方法是什么? - chawkinsuf
我不确定你是指xephyr还是其中的某个东西。Xephyr必须通过killall xephyr命令结束,因为它是在后台启动的。只需在Google上搜索bash ampersand即可。 - ManuelSchneid3r
我所提出的问题是如何注销在Xephyr中显示的lxsession,而不是如何终止Xephyr。仅仅从GUI中选择注销并不能使我退出会话。 - chawkinsuf
我不确定。这是半年前的事了。这取决于lxsession。你能退出LXDE而不是注销吗?或者在运行ssh的终端中使用ctrl-c(杀死进程)。如果lxsession分叉到后台,请尝试使用killall lxsession。但是,它们都不是合适的方法。 - ManuelSchneid3r

9
你可以使用ssh进行X11转发。如果你使用-Y-X开启一个ssh会话,它将启用X11转发。因此,在该会话中运行的任何创建窗口的程序都将在本地绘制窗口。你还可以传递一个要运行的命令给ssh
$ ssh -Y user@$some_ip /path/to/some/remote/python_script.py

如果您想要完整的GUI会话,则需要在树莓派上设置RDP或VNC服务器,并使用某些客户端连接它。

1
将此与Xnest结合,然后您就可以在远程显示器中嵌入一个窗口运行整个树莓派桌面。我发现这在局域网上的性能优于VNC。 - Tim Hoffman

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