如何处理SSH主机密钥验证与相同(但改变)的IP地址2个不同的主机? [关闭]
-
06-09-2019 - |
题
我有一个NAT防火墙后面的ssh 2个在服务器改变每天其WAN IP的位置。他们总是在同一个给定的时间,但在不同的端口WAN IP地址。
我连接到服务器A是这样的:
ssh -p 22001 karl@x1.example.com
和到服务器B:
ssh -p 22002 karl@x2.example.com
因此,我获得相同的IP 2个不同主机密钥,以及当所述IP改变甚至一个不同的IP为同一主机。
我得去删除一遍又一遍地在known_hosts文件中的其他关键或旧的密钥(在IP变化的情况下)。
我犹豫转动钥匙验证过,因为这将是不太安全。但是,让一个警告所有的时间也是不安全的(因为我忽略这些警告所有的时间即可)。有没有更好的解决办法?
这是在这里,但没有涉及到我的老问题是相同的:
解决方案
我认为这将工作:
在您的config
目录中创建一个.ssh
文件如下:
Host server1
Hostname x1.example.com
HostKeyAlias server1
CheckHostIP no
Port 22001
User karl
Host server2
Hostname x2.example.com
HostKeyAlias server2
CheckHostIP no
Port 22002
User karl
解释如下(从man ssh_config
)
<强> CheckHostIP 强>
如果该标志被设置为 “是”,SSH(1)将附加地检查 在known_hosts中的主机IP地址 文件。这使得ssh来检测一个 主机密钥由于改变DNS欺骗。 如果选项设置为“无”时, 检查将不会被执行。该 默认值是 “是”。
<强> HostKeyAlias 强>
指定应代替使用的真正的别名 主机查找或保存在主机密钥主机密钥时名 数据库文件。此选项是通过隧道SSH有用 或用于在单个主机上运行的多个服务器的连接。
在Username
和Port
线避免你具有给在命令行上的那些选择,太多,所以可以只使用:
% ssh server1
% ssh server2
不隶属于 StackOverflow