SSH経由でリモートホスト(Linux CentOS 8)上のGUIアプリケーションを起動する

SSH経由でリモートホスト(Linux CentOS 8)上のGUIアプリケーションを起動する

SSH からリモートで GUI アプリを実行しようとしているのですが、いくつか質問があります。私の Linux スキルは限られており、次のシナリオでこれを実現しようとすると問題が発生します。

CentOS 8 と GNOME GUI を搭載したホストが TV に接続されていますが、マウスやキーボードは接続されていません (これがリモート ホストで、SERVER と呼びます)。また、SSH クライアント (SSH) を備えたローカル ホストもあります。

私がやろうとしていること:

SSH を使用して、サーバーに接続されたテレビに表示されている Welcome 画面のロックを解除し、Retroarch を起動します (サーバーに接続されたテレビにロードするため)。GNOME Welcome 画面を終了するには、サーバーにログインするにはどうすればよいですか? 次のコマンドを使用します:

loginctl unlock-sessions

SERVER をオンにし、キーボードを接続し、ログインして、非アクティブのために画面がロックされるまで待つ場合にのみ機能します。また、SSH 経由で RETROARCH を起動する場合、DISPLAY=:0 と nohup を使用して「その種の作業」を実行する 2 つの方法を見つけましたが、どちらもプロセスを SSH セッションにロックします (ターミナルまたはプロセスを SSH セッションにロックするという事実に加えて、SERVER にすでにログインして Welcome 画面を通過した場合にのみ機能します)。SERVER から直接アプリを実行しているかのように起動する方法はありますか?

答え1

Gnome などのウィンドウ マネージャーとリモートでインターフェイスするには、VNC セッションの実行を検討する必要があります。これは、私の知る限り、ウィンドウ マネージャーは SSH + CLI 経由で制御するように設計されていないためです。

X11 上で Gnome を実行している場合は、現在の X11 セッションをリモートで公開する X11-vnc の使用を検討する必要があります。つまり、サーバーに接続されたテレビと同じ画像を VNC 経由で表示できます。

Wayland で実行している場合は、X11-vnc Wayland の代替品が何であるかをインターネットで独自に調べる必要があります。

1 番目のケースの場合の手順は次のとおりです。

サーバ:

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 から始まるように設定されています。

関連情報