有时候我需要在我的远程PC上启动XMBC媒体播放器或其他GUI软件(作为媒体中心的小型Xubuntu PC)。
通常,我通过在远程PC上启动X11vnc服务器,然后使用Xvnc客户端连接到Xfce桌面来实现这一点。
有没有办法通过SSH在远程Linux PC上启动GUI软件呢?
谢谢!
通常,我通过在远程PC上启动X11vnc服务器,然后使用Xvnc客户端连接到Xfce桌面来实现这一点。
有没有办法通过SSH在远程Linux PC上启动GUI软件呢?
谢谢!
export DISPLAY=:0
(或者远程显示器的编号)即可,程序将在远程显示器上运行。以下是一个快速示例:oli@bert:~$ ssh tim
oli@tim:~$ export DISPLAY=:0
oli@tim:~$ firefox
ssh tim "DISPLAY=:0 nohup firefox"
w
命令查看谁登录了以及他们在哪里。这将告诉您DISPLAY号码。 - Oliunset DISPLAY
- Olissh -Y <remoteip>
。 - Postadelmagassh user@localhost "DISPLAY=:0 nohup onboard"
- GTodorovmpv
播放视频文件,并且它还能传递键盘快捷键,前提是终端会话是活动窗口。这真是太厉害了,非常感谢! - Benjamin R$DISPLAY
的值应为 :0
。:
不是导出语法的一部分。 - Tejas Kale取决于您想在哪里看到应用程序显示
您首先使用附加的-Y
选项ssh到远程计算机,然后运行应用程序(例如firefox):
ssh -Y ...
firefox
-Y
不起作用,请检查远程PC上的sshd配置(参见Denis Lukinykh的答案)。另一个类似的选项是-X
。请谷歌了解它们之间的区别。ssh A@...
DISPLAY=:0 nohup firefox
您需要安装并启动 xvfb。xvfb 将在 DISPLAY
10 创建一个不可见的 X 会话。然后,您可以启动您的应用程序,并将其输出定向到该 DISPLAY
:
sudo apt install xvfb
sudo Xvfb :10 -ac -screen 0 1024x768x24 &
DISPLAY=:10 firefox
ssh tim
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
systemd-run --user firefox
--unit=
选项之后,这个功能变得非常有用,正是我所需要的:现在我可以在静态环境中启动和停止应用程序,而在这些环境中我无法动态地持久化任何数据,比如在iOS的快捷方式中,只需使用systemctl --user start kodi || systemd-run --user --unit=kodi kodi
和systemctl --user stop kodi
即可。 - undefinedssh remotehost 'grep -i x11 /etc/ssh/sshd_config'
X11Forwarding yes
X11DisplayOffset 10
ssh -Y -t remotehost 'sudo gparted'
或者
ssh -Y remotehost
sudo gparted
假设你想要运行 gnome-disks。
你需要两个 SSH 会话。一个用于运行软件(在这种情况下是 gnome-disks)。第二个会话用于执行你想要做的任何操作。
在第一个会话中执行以下命令:
export DISPLAY=:0
gnome-disks