如何在 Linux 系統上透過 SSH 設定 X11 轉發

X11轉送可讓您在遠端電腦上執行圖形化的Linux應用程序,並透過SSH將其視窗顯示在本機桌面上。若要進行設置,請在遠端SSH伺服器上啟用轉發,確認伺服器已啟用X11轉發xauth,檢查您的本機桌面是否有X顯示,然後使用SSH連線ssh -X。此操作僅轉發單一應用程式窗口,不會建立完整的遠端桌面會話。

安裝前需要準備什麼?

輸入 SSH 指令的電腦是客戶端。它需要 OpenSSH 用戶端和一個帶有 X 顯示器的活動圖形桌面會話。許多 Linux 桌面系統直接提供此功能,或在會話使用 Wayland 時透過 XWayland 提供。如果echo "$DISPLAY"本機桌面沒有任何輸出,則表示該 shell 中沒有可供 SSH 使用的顯示器。

遠端電腦即為伺服器。它需要 OpenSSH 伺服器和xauth相應的實用程序,以便 SSH 可以建立用於轉送顯示的臨時授權 cookie。在 Debian 或 Ubuntu 系統上,使用 `npm install openSSH server` 和 `npm install openSSH server` 在遠端系統上安裝它們sudo apt update。sudo apt install openssh-server xauth在其他發行版上,使用其軟體套件管理器安裝 OpenSSH 伺服器和提供相應功能的軟體套件xauth。在變更配置之前,請確保普通的 SSH 登入功能正常運作。

Linux 終端機顯示了在本機系統中找到的 ssh 和 xauth 命令。
檢查本機終端是否可以執行 OpenSSH 用戶端;遠端伺服器也需要 xauth。

透過 SSH 設定 X11 轉送。

1. 在伺服器設定中啟用轉發

在遠端電腦上,使用具有管理員權限的編輯器編輯伺服器設定檔(通常為 .conf ):/etc/ssh/sshd_config

sudoedit /etc/ssh/sshd_config

找到一個已啟用的X11Forwarding設定並將其變更為:

X11Forwarding yes

如果缺少此設置,請在任何Match程式碼區塊之前將其新增至全域配置部分。某些發行版也會從 `/etc/ssh` 載入檔案/etc/ssh/sshd_config.d/;請檢查包含的檔案是否有衝突的設定。Match規則或 `/ etc/ssh`DisableForwarding yes仍然可以阻止特定帳戶的轉送。X11UseLocalhost除非遇到特定的相容性問題,否則請保留其預設值:OpenSSH 通常會將轉送代理程式綁定到環回位址。官方的`sshd_config` 手冊描述了這些伺服器端選項。

SSH 伺服器配置,並啟用 X11Forwarding yes 指令
伺服器設定應該放在 sshd_config 檔案中,而不是 SSH 客戶端檔案 ssh_config 中。

2. 驗證設定並重新載入 SSH

在重新載入守護程序之前,請檢查檔案是否有語法錯誤,並確認有效的轉送值:

sudo sshd -t
sudo sshd -T | grep -i '^x11forwarding'

第一個命令應該無錯誤地退出;第二個命令應該報告錯誤x11forwarding yes。如果您使用了Match規則,請依照 OpenSSH 手冊中的說明,測試相關使用者和連線的有效設定。在重新載入之前修復任何錯誤,以免中斷 SSH 存取。

重新載入發行版所使用的服務名稱。 Debian 和 Ubuntu 通常使用:

sudo systemctl reload ssh

Fedora 和 RHEL 系列系統通常使用:

sudo systemctl reload sshd

如果不支援重新加載,請使用restart相同服務。保持目前會話打開,並在關閉會話前測試新連線。 Ubuntu 的OpenSSH 伺服器文件涵蓋了 Ubuntu 上使用的伺服器檔案和設定片段。

3. 從本機 Linux 桌面連接

在客戶端,請求不受信任的 X11 轉送-X:

ssh -X user@server.example.com

請將範例使用者名稱和主機名稱替換為您自己的使用者名稱和主機名稱。如果 SSH 伺服器監聽的是非標準端口,請新增其連接埠號碼-p:

ssh -X -p 2222 user@server.example.com

登入後,啟動遠端主機上安裝的圖形程式。為了快速檢查,執行xclock該測試應用程式是否可用,或啟動另一個已安裝的圖形介面程式。 SSH 會DISPLAY自動設定遠端會話的值並轉送 X11 連線;請勿將本機顯示值複製到伺服器或手動設定。

本機 Linux 終端機使用 ssh -X 連接到遠端主機
此-X選項會在 SSH 會話啟動時請求 X11 轉送。
遠端 xclock 應用程式顯示在 Linux 桌面的 SSH 終端機旁。
轉發的 GUI 應用程式會在本機桌面上以視窗的形式出現,同時 SSH 會話保持開啟。

安全和故障排除

-X預設啟用。此-Y選項會啟用可信任轉發,從而移除 X11 安全性限制,並賦予遠端應用程式對本機顯示器更廣泛的存取權。請僅在您信任的伺服器和應用程式上使用此選項。 OpenSSH 警告稱,X11 轉送可能會使用戶端顯示器面臨攻擊風險;有關可信任轉送和非可信任轉送之間的區別,請參閱ssh 手冊和ssh_config 手冊。

  • 「X11 轉送要求失敗」:檢查伺服器的X11Forwarding有效值,確認xauth是否已安裝在遠端主機上,並尋找限制性Match封鎖或DisableForwarding設定。
  • DISPLAY遠端會話為空:中斷連線並重新連線ssh -X。確認本機 shell 具有正在執行的圖形顯示,並且連接已到達您剛剛配置的伺服器。
  • 視窗提示無法開啟顯示器:請確認您的本機桌面工作階段是否仍處於活動狀態。無法存取桌面顯示器的 shell 無法顯示轉送的視窗。
  • xclock未找到:測試程序不存在。請嘗試使用遠端電腦上已安裝的圖形使用者介面應用程式;僅憑此訊息並不能證明 SSH 轉送有問題。

X11轉發對於偶爾使用的遠端工具來說很方便,但對於頻繁刷新的圖形應用程式來說,在高延遲連線下可能會感覺很慢。對於整個桌面或圖形密集型工作,請使用專為此類任務設計的遠端桌面解決方案。

留下評論

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler 可以將 MP3 片段對應到鍵盤按鍵,並支援音訊循環播放。了解這款經典免費軟體的功能、其舊功能的缺失以及下載前需要檢查的事項。

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

使用目前軟體包命令在 Ubuntu、Debian、Fedora、Arch 或 openSUSE 上安裝 Wireshark,然後安全地配置即時資料包擷取。