当前位置:  开发笔记 > 运维 > 正文

如何在相同(但不断变化的)IP地址上使用2个不同的主机处理ssh主机密钥验证?

如何解决《如何在相同(但不断变化的)IP地址上使用2个不同的主机处理ssh主机密钥验证?》经验,为你挑选了1个好方法。

我在nat防火墙后面有2个ssh服务器,每天都会改变它的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更改的情况下).

我不愿意关闭密钥验证,因为这样会不那么安全.但是始终获得警告也是不安全的(因为我一直忽略这样的警告).有更好的解决方案吗?

这与我在这里的旧问题有关,但不一样:

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



1> Alnitak..:

我认为这会奏效:

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

如果此标志设置为"yes",则ssh(1)将另外检查known_hosts文件中的主机IP地址.这允许ssh检测主机密钥是否因DNS欺骗而更改.如果该选项设置为"no",则不会执行检查.默认值为"是".

HostKeyAlias

在主机密钥数据库文件中查找或保存主机密钥时,指定应使用的别名而不是实际主机名.此选项对于隧道连接SSH连接或在单个主机上运行的多个服务器非常有用.

UsernamePort线避免你不得不放弃在命令行上这些选项,也因此你可以使用:

% ssh server1
% ssh server2

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有