Ubuntu

客戶端和兩台伺服器之間的 SSH 轉發

  • March 19, 2022

我試圖弄清楚如何在客戶端和兩台伺服器之間建立一個 shh 隧道。我需要客戶端通過 ServerA 連接到 ServerB。

這些是事實:

  • 客戶端可以連接到 ServerA(通過公共 IP)。
  • 客戶端無法連接到 ServerB。
  • ServerA 無法連接到 ServerB。(伺服器與 ServerA 遠端分離,位於 NAT 後面)。
  • ServerB 可以連接到 ServerA(通過公共 IP)。
  • ServerA 或 ServerB 都無法連接到主機。(客戶端沒有公共 IP)。

準確設置它的 ssh 命令是什麼?

您將客戶端連接到伺服器 A,伺服器 B 連接到伺服器 A,並通過伺服器 A 建立隧道。

在客戶端:

ssh -L 2200:127.0.0.1:2200 user@serverA

在伺服器 B 上:

ssh -R 2200:127.0.0.1:22 user@serverA

然後從客戶端到伺服器 B 的 SSH,您只需執行(從客戶端):

ssh -P 2200 user@serverB

這就是我想出來的。

在客戶端:

ssh -A user@ServerB

在伺服器 B

ssh -N -R 44444:localhost:22 user@ServerA -p 2222

-p 2222在我的情況下,SSH 伺服器沒有在預設埠上偵聽22

在客戶端:

ssh user@localhost -p 44444

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