我想從機器 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
這樣您就不需要輸入任何密碼。