Linux

通過 SSH 隧道轉發 SSH

  • January 26, 2022

我的情況 :

我(本地主機)-> 伺服器 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選項轉發身份驗證代理連接。

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