Ubuntu
客戶端和兩台伺服器之間的 SSH 轉發
我試圖弄清楚如何在客戶端和兩台伺服器之間建立一個 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