如何鎖定遠端機器的螢幕?
來自https://unix.stackexchange.com/a/505644/674
當您使用 SSH 時,您可以使用 ssh -X 或 ssh -Y 訪問您連接的螢幕。程序可以完美地在一台機器上執行並在另一台機器上顯示。因此,如果您在遠端機器上通過 SSH 執行 light-locker,它將鎖定您的本地顯示器而不是遠端顯示器(就像執行 gnome-terminal 或任何其他命令將在遠端機器上執行它但在本地顯示它一樣)。
如果您希望螢幕再次鎖定,是的,您必須重新啟動它,但請注意從您要鎖定的 X 會話而不是 ssh 重新啟動它。
我 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
你需要了解 X 的工作原理。你有你的本地機器 LOC 和遠端機器 REM 的 ssh。您有兩個 X 顯示: LOC:0.0 和 REM:0.0 。當您
ssh -X REM
從 LOC 執行時,您會在 REM 上創建一個新的虛擬 X 顯示,即“REM:10.0”並指向“LOC:0.0”。所以當你在 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