如何透過兩個 SSH 隧道轉送 X?

如何透過兩個 SSH 隧道轉送 X?

我正在嘗試從我的工作電腦上執行我的家庭電腦上的 X 程式。基本設定是這樣的:

Arch Linux 工作電腦 -> OpenBSD SSH 路由器(家用) -> Arch Linux 家用電腦(附 SSH)

我從來沒有真正嘗試過這樣做,而且我不太確定該怎麼做。我該如何讓它發揮作用?

當我嘗試做的時候

$(work computer) ssh -Y home-ip
..
$(home router) ssh -Y private-ip

我在最後一條隧道上收到“X11 轉發請求在通道 0 上失敗”

我該如何正確地做到這一點?

編輯:我忘記在我的家庭電腦的 sshd 上啟用 X 轉送。我現在已經解決了這個問題,但是當我執行像 之類的簡單命令時,似乎什麼都沒有發生xterm。它只是坐在那裡,大概是試圖在我的路由器上顯示 xterm 窗口,而不是在我的工作電腦上

答案1

將工作電腦上的連接埠轉送到家庭電腦的連接埠 22,然後ssh -Y轉送到該本機連接埠怎麼樣?

例如,

ssh -L 2222:private-ip:22 router-ip
ssh -Y localhost:2222

答案2

您所做的應該可行,但您需要xauth在路由器上安裝該程序,以便它可以為 SSH 創建的虛擬 X11 顯示建立安全金鑰。您需要在您或到達的xauth任何機器上,即使您實際上沒有在那裡運行任何 X 應用程序,而只是將其用作通往其他地方的一步。ssh -Xssh -Y

連接到家庭電腦後,檢查您的$DISPLAY變數。它應該是類似的東西localhost:10。如果沒有,請返迴路由器上的 shell 並檢查$DISPLAY那裡。

相關內容