Linux
通過 SSH 隧道轉發 SSH
我的情況 :
我(本地主機)-> 伺服器 A(ip:100.100.100.100)=>(伺服器 B(ip:192.168.25.100),伺服器….)
我可以通過 SSH 連接到伺服器,因為它有一個真實的 IP,如果我想連接到伺服器 b,我會使用它的 ip(192.168.25.100) SSH 伺服器 b
例子:
從我的電腦:
ssh user@100.100.100.100
然後在 100.100.100.100,
ssh user@192.168.25.100
這將使我使用 ssh 訪問伺服器 B
如果我想直接連接到伺服器 b 怎麼辦?我怎樣才能做到這一點?
例子:
來自我的 oc:
ssh@192.168.25.100
我嘗試了以下方法:
ssh -L 22:localhost:22 user@100.100.100.100
沒有成功
您的問題在於將偵聽器綁定到 localhost:22; 已經有一個 sshd 正在監聽它。通過 ssh 連接建立 ssh 連接是完全合法的,我一直這樣做,但是您需要為轉發偵聽器選擇未使用的埠。
嘗試
me% ssh user@100.100.100.100 -L 2201:192.168.25.100:22
然後
me% ssh localhost -p 2201
您最終應該在伺服器 B 上(除非某些東西已經綁定到我:2201,在這種情況下,請選擇另一個埠)。
您不必使用 ssh 埠轉發通過代理 ssh 進入內部電腦。您可以使用 ssh 功能在您連接的第一台伺服器上執行命令,以便通過 ssh 連接到第三台電腦。
ssh -t user@100.100.100.100 ssh user@192.168.25.100
該
-t
選項強制 ssh 分配一個偽 tty,以便您可以執行互動式命令。這也適用於 ssh 密鑰。如果您在機器 A 上擁有私鑰和公鑰,在機器 B 和 C 上的授權密鑰文件中擁有公鑰,那麼您可以使用該
-A
選項轉發身份驗證代理連接。