如何处理同一(但不断变化的)IP地址上的两台不同主机的ssh主机密钥验证?
我有一台nat防火墙后面的2台ssh服务器,每天都在更改其WAN IP地址。它们在给定的时间总是处于相同的WAN IP地址,但在不同的端口上。如何处理同一(但不断变化的)IP地址上的两台不同主机的ssh主机密钥验证?
我连接到服务器A这样:
ssh -p 22001 [email protected]
和服务器B:
ssh -p 22002 [email protected]
所以我得到了相同的IP 2个不同的主机密钥,也是IP更改时即使是同一主机的不同IP。
我必须继续删除known_hosts文件中的其他密钥或旧密钥(在发生IP更改的情况下)。
我很犹豫是否将密钥验证关闭,因为这样做不太安全。但是始终发出警告也是不安全的(因为我一直忽略这些警告)。有更好的解决方案吗?
这是在这里与我的老问题,但不一样的:
我认为这将工作:
在.ssh
目录中创建一个config
文件,如下所示:
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)将额外检查 主机IP地址中的known_hosts 文件。这允许ssh检测由于DNS欺骗而导致的主机密钥是否发生更改 。 如果该选项设置为“否”,则不会执行 检查。 默认值为“是”。
HostKeyAlias
指定查找或保存在主机密钥 数据库文件的主机密钥时,应代替真实 主机名的别名。此选项对于隧道SSH 连接或运行在单个主机上的多个服务器很有用。
的Username
和Port
线避免你不得不放弃在命令行上的选择,太多,所以你可以用:
% ssh server1
% ssh server2
这太酷了!非常好,谢谢! – user89021 2009-04-09 19:39:30
为什么这个封闭的,而不是移到[超级用户](HTTPS ://superuser.com/)或[Unix&Linux](https://unix.stackexchange.com/)? – 2017-09-08 20:00:24