Linux

如何通過附加伺服器啟用 SSH X11 轉發?

  • June 25, 2020

我有主機 A、B 和 C。從主機 AI 只能通過 ssh 訪問 B。從 BI 可以訪問 C。我希望能夠在 C 上執行 X11 程序並將顯示轉發到 A。

我試過這個:

$ ssh -XB
B$ ssh -XC
加元 xclock
錯誤:無法打開顯示:

但它不起作用。

有幾種方法可以做到這一點,我更喜歡的一種是轉發 ssh 埠:

首先,連接機器B並轉發

$$ localPort $$通過 B 到 C:22

A$ ssh -L [localPort]:C:22 B

接下來,使用這個新創建的隧道從 A 連接到 C

$$ localPort $$, 轉發 X11

A$ ssh -X -p [localPort] localhost

現在我們可以在 C 上執行 X11 程序並讓它們在 A 上顯示

C$ xclock

$$ localPort $$可以是您尚未在 A 上監聽的任何埠,為了簡單起見,我經常使用 2222。

這可以使用埠轉發輕鬆完成:

A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock

埠 localhost:2022 通過 B 轉發到 C:22 SSH 到 C 通過 localhost:2022 正常使用 X

引用自:https://serverfault.com/questions/53080