我们设置了 2 台基于 Redhat 的服务器,它们都是虚拟 IP 后面的 ha 主机。
- 192.168.0.3 数据服务器(虚拟ip)
- 192.168.0.1 dataserver_ha1(物理服务器)
- 192.168.0.2 dataserver_ha2(物理服务器)
使用 drdb 和 heartbeat 可以将一台主机设置为主要主机,另一台主机处于备用状态。如果主要主机发生故障,则备用服务器将成为主要服务器并接管……在这方面非常标准。
我们的日志处理服务器(etl_server)通过 ssh 连接到数据服务器并每小时运行一次进程。
我们使用 ssh_keys 来连接(尽管这不是重要的信息)。
当 dataserver_ha1 故障转移到 ha2 时,etl_server 因有关主机密钥更改的中间人警告而无法再连接。
据我所知,我可以做以下几件事:
1)关闭 ssh 客户端上的严格检查(不想这样做)2)在客户端的 authorized_keys 文件中添加两个物理主机密钥的条目3)镜像所有 /etc/sshd/hosts* 文件
但我觉得我应该能够告诉主机通知 ssh 客户端请求,两个允许的主机密钥中的一个可能会被使用。当我有时间的时候,我会使用 VirtualBox 或其他东西来测试这一点。与此同时,我在错误的地方寻找有关此的信息...
答案1
在两个数据服务器上使用相同的私钥。
从小学开始...
scp /etc/ssh/*key* dataserver_ha2:/etc/ssh/
随后,使用 重新启动 dataserver_ha2 上的 ssh 守护程序service sshd restart
。
这将以最快、最干净的方式解决您的主机身份问题。