基于 ssh 主机的身份验证中继应使用什么 ProxyCommand?

基于 ssh 主机的身份验证中继应使用什么 ProxyCommand?

我有一台主机 $HOST,我只能通过ssh访问主机 $BASTION 来访问它,然后通过基于主机的身份验证,连接到ssh $HOST。$HOST 不接受通过公钥认证等方式进行访问。

ProxyCommand我需要进行什么配置才能使ssh $HOST我的本地机器透明地连接到 $HOST?

我在本地机器上使用 OpenSSH 6.2p2,在 $BASTION 和 $HOST 上使用 OpenSSH 5.9p1。

答案1

您可以在“stdio forward”模式下使用 ssh。这会导致 ssh 连接到指定主机并请求 sshd 打开到另一台主机的转发连接。ssh 客户端会将此转发连接连接到 stdin/out,这使得它非常适合用作 ProxyCommand。

ssh_config 代码片段示例:

Host behind-bastion
    ProxyCommand ssh -W %h:%p bastion

请注意,基于主机的身份验证在将传入连接地址的 DNS 名称与 /etc/ssh/known_hosts 中与公钥关联的名称进行匹配时可能非常挑剔。如果您在这里遇到问题,您可能需要在 $HOST 的 sshd_config 中设置 HostbasedUsesNameFromPacketOnly=yes。

相关内容