如何从非 GUI Linux shell 通过 SSH 在远程 Ubuntu 桌面上启动 GUI 会话?

如何从非 GUI Linux shell 通过 SSH 在远程 Ubuntu 桌面上启动 GUI 会话?

我正在设置一个由各种 Linux 机组成的测试环境,并且我需要通过 ssh 在远程机器上启动 Firefox 实例。

远程机器安装了 Ubuntu Desktop(11)和 Firefox。

源计算机是持续集成服务器,它从非 GUI 环境创建到远程计算机的 ssh 会话。然后,它运行一个脚本,该脚本尝试在远程计算机上启动 Firefox。

但是,由于 ssh 会话来自非 GUI 环境,因此没有显示。

是否有可能实现无头 X-windows 显示器?即 Firefox 可在远程环境中运行的虚拟显示器?我有哪些选择?

答案1

您需要一个 Firefox 的 GUI。但您有几个选择:

1)在你的主机上运行 Xorg 并在这里显示 Firefox(ssh -Y user@remotehost)

2)在远程主机上启动 vncserver,并在其中运行 Firefox

3) 如果 xorg 已经在远程主机上运行,​​只需允许远程主机上的本地 Xorg 连接(xhost +127.0.0.1),然后使用以下命令之一启动 Firefox(第一个命令应该有效,如果不行,请尝试第二个):

DISPLAY=":0" firefox 
DISPLAY=":0" firefox -no-remote

答案2

X 虚拟帧缓冲区将解决这个问题。

sudo apt-get install xvfb
Xvfb :1 &

然后启动 Firefox:

ssh HOST 'export DISPLAY=:1; firefox"

答案3

有 ssh 客户端/X11 服务器软件包,例如

只需确保 $DISPLAY 指向您正在连接的位置并在控制台中启动 Firefox。

相关内容