如何处理SSH主机密钥验证与相同(但改变)的IP地址2个不同的主机? [关闭]

StackOverflow https://stackoverflow.com/questions/733753

我有一个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变化的情况下)。

我犹豫转动钥匙验证过,因为这将是不太安全。但是,让一个警告所有的时间也是不安全的(因为我忽略这些警告所有的时间即可)。有没有更好的解决办法?

这是在这里,但没有涉及到我的老问题是相同的:

SSH服务器上登录的警告消息用2个DNS名称

有帮助吗?

解决方案

我认为这将工作:

在您的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有用   或用于在单个主机上运行的多个服务器的连接。

UsernamePort线避免你具有给在命令行上的那些选择,太多,所以可以只使用:

% ssh server1
% ssh server2
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top