我想设置三个主机:
ssh UserC@HostC
HostC - 目标主机。您可以使用私钥登录。- HostB - HostC 的“大使/代理”。当您通过 ssh 连接到 HostB 时(只需
ssh UserB@B
使用 UserB 私钥,无需在配置中进行任何额外操作,如 ProxyCommand),这应该完全等同于直接通过 ssh 连接到 HostC。当然,HostB 拥有连接到 HostC 所需的私钥。我可以完全控制 HostB 本身。 - HostA - 主机,我们希望从其运行
ssh UserB@HostB
- 通过 HostB - 连接到目标 HostC,甚至不需要事先知道 HostC 的存在。
这里有几乎相同的问题:
但是,可接受的答案是使用 ProxyCommand。这需要在 HostA 上进行配置,而这对我来说并不理想。
这种情况有可能吗?谢谢!
答案1
在 HostB 上的 /etc/ssh/sshd_config 中,你可以写入类似
ForceCommand ssh HostC
可能由Match
操作符开头,用于选择特定用户、源主机或 IP 地址。请参阅man sshd_config
以了解更多详细信息。