使用控制套接字透過中間主機進行 SSH

使用控制套接字透過中間主機進行 SSH

我想從機器 A 通過 B SSH 到機器 C。

A$ ssh user@B
B$ ssh user@C

我必須輸入兩次密碼(不允許使用公鑰)。我想設定一個控制套接字,以便在輸入兩個密碼後我可以使用該套接字 ssh 到 C,也許輸入如下內容:

A$ ssh -S socket C

這可能嗎?

答案1

您可以使用B作為跳轉主機:

ssh -J user@B user@C

如果您的使用者名稱或主機名稱很長,您可以將它們新增至~/.ssh/config

Host hostB
    HostName some-long-hostname-of-B-or-its-ip
    User username-on-B

Host hostC
    HostName same-here-for-C
    User username-on-C

然後你可以像這樣 ssh:

ssh -J hostB hostC

跳轉還可以配置為ssh hostC

Host hostC
    HostName same-here-for-C
    User username-on-C
    ProxyJump hostB

答案2

為了補充 gronostaj 的答案,以下是如何使用 -J 建立套接字:

$ ssh -M -S socket -J user@B user@C -fN

然後使用socket登入C:

$ ssh -S socket C

這樣您就不需要輸入任何密碼。

相關內容