使用控制套接字通过中间主机进行 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

这样您就不需要输入任何密码。

相关内容