Ssh

通過 SSH 反向隧道的遠端桌面 (KDE)

  • June 26, 2013

我有一個通過中間人伺服器設置和工作的反向 ssh 隧道。我在這里和遠端機器上執行 Kubuntu 12.04。

我想打開一個遠端桌面會話。到目前為止,我一直在使用 Team Viewer 登錄遠端桌面。我想在沒有 Team Viewer 的情況下獲得類似的結果。我知道 X over SSH 將實現這一點。如果我需要vnc,那也沒關係。

這是我目前的問題。當我通過隧道連接到遠端機器時,出現此錯誤:

$ startkde &
$ $DISPLAY is not set or cannot connect to the X server.

我正在使用 -Y SSH 選項連接並使用密鑰(不是密碼)。與 SSH 相關的一切似乎都執行良好。我看到的唯一問題是 X。這是另一個例子:

$ xeyes &
$ Error: Can't open display: 

$ echo $DISPLAY

$ 

(不返回任何內容)

這些答案似乎很相關,但我無法足夠詳細地理解它們以在我的情況下制定解決方案:

我可以以 root 身份在另一個使用者的桌面上啟動圖形程序嗎?

https://superuser.com/questions/190801/linux-wmctrl-cannot-open-display-when-session-initiated-via-sshscreen/190878#190878

如果您使用中間伺服器來互連兩個系統,那麼至少其中一條線路可能相當慢。在這種情況下,VNC 可能會為您提供更好的性能,因為您可以更好地調整頻寬/性能要求/質量比(這實際上對大多數設置都有效,除非您使用的是可靠的 100Mbit+ 網路)。

我個人喜歡x11vnc,它連接到正在執行的 X 伺服器並通過 VNC 協議轉發輸入/輸出(這可以在 X 伺服器執行時完成,因此您甚至可以與顯示管理器進行互動)。有問題的 X 伺服器既可以是正常伺服器(輸出到真實顯示器),也可以是基於幀緩衝區的伺服器,例如Xvfb. 然後,您可以使用任何 VNC 客戶端連接到導出的 X 伺服器。當然,您可能希望通過ssh或隧道傳輸傳輸stunnel。的手冊頁x11vnc非常詳盡,甚至在開頭還有一個常用的命令行範例。

這還允許您遠端連接到正在執行的會話,以幫助某人遠端解決問題。作為一個重要的好處,由於只轉發輸入和輸出而不是 X 協議本身,因此網路斷開只會中斷會話,但所有程序仍然執行,這不是 X 通過 SSH 的情況

如果出於某種原因您真的想通過 SSH 建立 X11 隧道,則必須確保DISPLAY環境變數由ssh. 沒有它,您將無法繼續,因為應用程序將不知道​​要連接到哪個伺服器。檢查該X11Forwarding指令是否yes在您的sshd配置中設置為。

最後但並非最不重要的一點是,您可能不想startkde4通過 SSH 執行(或任何其他 X 會話) - 網路負載可能會非常重 - VNC 將再次為您提供更好的服務。

引用自:https://unix.stackexchange.com/questions/80683