通过 SSH 在远程主机(Linux CentOS 8)上启动 GUI 应用程序

通过 SSH 在远程主机(Linux CentOS 8)上启动 GUI 应用程序

我在尝试通过 SSH 远程运行 GUI 应用程序时遇到了一些问题。我的 Linux 技能有限,在尝试通过以下场景实现此目的时遇到了一些问题:

我有一台安装了 CentOS 8 和 GNOME GUI 的主机,连接到电视,没有连接鼠标或键盘(这是远程主机,我将其称为服务器)。我还有一台安装了 SSH 客户端(SSH)的本地主机。

我正在尝试做的事情:

使用 SSH,我想解锁连接到服务器的电视上显示的欢迎屏幕,然后启动 Retroarch(将其加载到连接到服务器的电视上)。如何登录服务器以退出 GNOME 欢迎屏幕?使用以下命令:

loginctl unlock-sessions

仅当我打开服务器、插入键盘、登录并等待屏幕因不活动而锁定时才有效。此外,当通过 SSH 启动 RETROARCH 时,我发现了两种方法可以完成这种“工作”,使用 DISPLAY=:0 和 nohup,但它们都将进程锁定到 SSH 会话(除了它将终端或进程锁定到 SSH 会话之外,它仅在我已登录服务器并通过欢迎屏幕时才有效)。有没有办法像直接从服务器运行应用程序一样启动它?

答案1

要远程与 Gnome 等窗口管理器交互,您需要考虑运行 VNC 会话,因为据我所知,窗口管理器不是设计为通过 SSH + CLI 进行控制的。

如果您在 X11 上运行 Gnome,那么您应该考虑使用 X11-vnc,它将向您远程公开当前的 X11 会话 - 即,您将通过 VNC 看到与连接到服务器的电视上相同的图像。

如果您在 Wayland 上运行,则需要自己在互联网上研究 X11-vnc Wayland 替代品是什么。

对于第一种情况,步骤如下:

服务器:

apt install x11-vnc -y
x11-vnc

客户 :

apt install tigervnc-viewer -y
ssh -L 5901:localhost:5901 <SERVER-IP>
vncviewer localhost:5901

最佳做法是将 VNC 协议包装在 ssh 隧道中,因此许多 VNC 服务器默认仅在本地主机上侦听。VNC 的端口号可能会更改,但它已设置为从 5900 开始。

相关内容