我想从机器 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
这样您就不需要输入任何密码。