我正在尝试通过跳转框 ssh 到目标主机。以下是我的配置文件条目
Host 172.*
User surendra
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh -q -A surendra@jump nc -q0 %h %p
当我使用 IP 地址通过 SSH 连接到目标框时,此方法可行。但当我尝试使用主机名通过 SSH 连接时,此方法无效。
注意:我也在 /etc/hosts 文件中做了一个条目。
有人可以帮忙配置.ssh/config 文件,以便我可以通过查看 /etc/hosts 文件中的主机名条目,使用主机名通过 ssh 连接到目标框。
答案1
使用-W
:
Match exec grep %h /etc/hosts
[...]
ProxyCommand ssh -W %h:%p -q -A surendra@jump
它将解析来自本地机器而不是跳转箱的主机名。
它还将检查您的主机是否在中提及/etc/hosts
。
答案2
解决此问题的另一种方法是在本地计算机和 jumpbox /etc/hosts 文件上创建主机名/ip 映射条目。
例如,假设您尝试代理的机器是 10.xx.yy.zz,并且您想要提供一个用户友好的名称 appserver.mycompany.com,而您的 Jumpbox 是 jumpbox.mycompany.com。
1)在本地主机 /etc/hosts 上,输入以下内容
10.xx.yy.zz appserver.mycompany.com
2)在 jumpbox 的 /etc/hosts 上,输入以下内容
10.xx.yy.zz appserver.mycompany.com
现在,你的本地计算机和 Jumpbox 都能够将用户友好名称解析为实际 IP,并且你的 ssh 代理应该可以使用以下配置
Host appserver.mycompany.com
User surendra
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh -A [email protected] -W %h:%p