XShell 7關掉圖形介面
小記
什麼是 X11 Forwarding?
X11(X Window System)是 Linux/Unix 系統的圖形顯示協定,允許應用程式透過網路將圖形界面渲染到遠端的 X Server 上。X11 Forwarding 則是 SSH 的一項功能,讓你在 Windows 透過 XShell 連線到 Linux 主機時,可以直接顯示 Linux 上的圖形應用程式視窗(例如 gedit、xeyes 等)。
在 XShell 7 中,X11 Forwarding 預設是勾選開啟的。
為什麼要關閉 X11 Forwarding?
雖然 X11 Forwarding 提供了遠端圖形介面的便利,但在維運環境中通常建議關閉,原因如下:
-
程式執行錯誤:當 SSH 連線的程式內部嘗試使用圖形功能(例如產生條碼、生成 PDF 報表),如果啟用了 X11 Forwarding,程式會嘗試連接 X Server,若找不到可用的 Display,就會拋出例如
Cannot connect to X11 window server的錯誤,導致程式中斷。 -
安全性風險:X11 Forwarding 存在安全漏洞,遠端主機上的惡意程式可透過 X11 連線讀取本地鍵盤輸入、截圖等,在不受信任的環境中有資安疑慮。
-
效能影響:即使沒有實際使用圖形功能,啟用 X11 Forwarding 也會增加 SSH 連線的額外開銷。
XShell 7 關閉 X11 Forwarding 步驟
- 開啟 XShell 7,在 Session Manager 選擇對應的連線設定
- 右鍵 → Properties(屬性)
- 進入 Connection(連線)→ SSH → Tunneling(通道)
- 找到 X11 Forwarding,取消勾選
- 按下 OK 儲存設定
若有勾選 X11 Forwarding,連線後執行帶圖形功能的程式時,XShell 會彈出錯誤提示:
程式也會出現類似以下的錯誤訊息:
在 SSH Config 中關閉 X11 Forwarding
如果是使用 OpenSSH 的 ~/.ssh/config 設定連線,可以加上以下設定來關閉 X11 Forwarding:
|
|
或是直接在 SSH 指令加上 -x 參數:
|
|
若要完全禁止,也可以在 Server 端的 /etc/ssh/sshd_config 設定:
|
|
修改後記得重啟 SSH 服務:
|
|
小結
在維運環境中,若不需要遠端圖形介面,建議將 X11 Forwarding 關閉,不僅可以避免程式因找不到 X Server 而報錯,也能提升安全性與連線效率。