我有两个网络,每个网络后面都有一个堡垒主机和一个 Web 应用主机。我已经设置了,~/.ssh/config
这样ProxyCommand
我就可以用一个命令从本地计算机登录到任一 Web 应用主机ssh
,如下所示:
Host example.production
Hostname 54.0.10.1
Host example.production.web
Hostname 10.0.10.1
ProxyCommand ssh example.production nc %h %p 2> /dev/null
Host example.demo
Hostname 54.0.20.1
Host example.demo.web
Hostname 10.0.10.1
ProxyCommand ssh example.demo nc %h %p 2> /dev/null
问题是两个 webapp 主机10.0.10.1
(在不同的网络中),因此 ssh 抱怨 ECDSA 密钥不匹配。我能做些什么来表明这是两台独立的机器,具有独立的 ECDSA 密钥?
答案1
一个选项是使用/etc/hosts
包含备用 DNS 记录的文件。例如;
10.0.10.1 host1 10.0.10.1 host2
然后,您的 ssh 配置Hostname
参数将具有与 hosts 文件中相同的相应 DNS 名称。ssh 将看到主机名并使用它来进行密钥匹配。
或者,您可以禁用严格主机密钥检查。将其放入每个主机条目下的 ssh 配置中;
StrictHostKeyChecking no
这将禁用它们的 ECDSA 检查。