リモートコンピュータの画面をロックするには?

リモートコンピュータの画面をロックするには?

~からhttps://unix.stackexchange.com/a/505644/674

SSHを使用している場合は、ssh -Xまたはssh -Yを使用して接続された画面にアクセスできます。プログラムはあるコンピュータで完全に実行され、別のコンピュータでは表示されます。したがって、SSHを介してリモートシステムでlight-lockerを実行すると、ローカルディスプレイはロックされますが、リモートディスプレイはロックされません(gnome-terminalを実行するか、別のコマンドを実行するとリモートシステムで実行されますが、ローカルで表示されるのと同じです)。

画面を再ロックするには再起動する必要があります。ただし、SSHではなくロックしたいXセッションで再起動するように注意してください。

SSH経由でコンピュータに接続していて、画面をロックしたいです。なぜ失敗したのか、どうしたらいいのか教えてくれる人はいますか?ありがとうございます。

$ xscreensaver-command -lock
xscreensaver-command: warning: $DISPLAY is not set: defaulting to ":0.0".
xscreensaver-command: no screensaver is running on display :0.0

$ DISPLAY=:0 xscreensaver-command -lock
xscreensaver-command: no screensaver is running on display :0

リモートホストで実行されているXサーバーがないことを確認する方法がわかりません。

$ ps -A | grep -i xorg
  448 ?        00:00:29 Xorg
  605 ?        00:00:27 Xorg
  766 tty7     05:19:26 Xorg
 2175 ?        00:02:58 Xorg
 3343 ?        00:00:24 Xorg
 8520 ?        00:00:28 Xorg
12564 ?        00:00:22 Xorg
24655 ?        00:00:13 Xorg
26692 ?        00:00:28 Xorg
26704 ?        00:00:25 Xorg
26852 ?        00:00:29 Xorg
27034 ?        00:00:23 Xorg

答え1

Xがどのように機能するかを理解する必要があります。ローカルシステムLOCがあり、リモートシステムREMのSSHがあります。 2つのXディスプレイがあります:LOC:0.0とREM:0.0。 LOCで実行すると、ssh -X REMREMに「LOC:0.0」を指す「REM:10.0」という新しい仮想Xディスプレイが作成されます。したがって、REMでプログラムを実行すると、グラフィックはREM:10に転送され、そこからLOC:0.0に転送されます。

REMでVNCサーバーを実行している場合は、「REM:1.0」と表示されます(例:)。同じコンピュータでさまざまなXディスプレイを実行して、アプリケーションの出力を別の物理画面または仮想画面に送信できます。

REMに接続するときに、「REM:0.0」、「REM:1.0」、またはその他のXディスプレイ(VNCは特別なXディスプレイのみ)を使用してローカルにログインしたユーザーがいる場合は、その画面にSSHを介して移動できます。特殊変数「DISPLAY」の値を変更することによって。

コンピュータのローカルコンソールに接続して実行すると、次の結果がecho $DISPLAY表示されます。 :0.0

SSHを使用してLOCからREMに接続し、起動したアプリケーションをREM画面(REM:0.0)に表示するには、DISPLAY値を変更します。

export DISPLAY=:0.0

プログラムを実行すると、REM画面に表示されます(もちろん、同じユーザーがセッションを開いた場合)。

あなたの場合は、「REM:0.0」に開いているセッションが必要ですが、そうではありません。セッションがVNCを使用して実行されている場合は「REM:1.0」である必要があるため、xscreensaverを実行するにはそれに応じてDISPLAYを設定する必要があります。

export DISPLAY=:1.0
xscreensaver
xscreensaver-command -lock

答え2

このソリューションを使用するには、xdotoolをインストールする必要があります。これは私のLinux Mintで完璧に動作します

export DISPLAY=:0
xdotool key Ctrl+alt+l

関連情報