透過 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 開始。

相關內容