我有两个类似的网络应用程序部署,每一个在不同的虚拟网络与私有IP地址。两者都有一个10.0.4.4的VM。
我可以从我的开发机器进入任何一个网络,SSH进入VM,但是当我切换网络时,SSH会对主机有不同的密钥而大惊小怪。
我是否可以针对一个主机名配置多个密钥签名以避免这种情况?推荐的连接到具有相同IP的不同机器的方法是什么?
发布于 2022-09-30 18:31:52
SSH检查它的known_hosts
是否有此主机的所有条目。如果它们都不匹配,包括通常情况下所有都是单个条目,那么SSH就会投诉。
如果其中任何一个与SSH匹配,请在主机检查中成功。
来自man sshd
的SSH_KNOWN_HOSTS文件格式:
在执行主机身份验证时,如果任何匹配行都具有正确的密钥,则接受身份验证;如果匹配行与正确的密钥匹配,或者如果服务器提供了用于身份验证的证书,则接受对证书进行签名的证书颁发机构的密钥。
...
对于相同的名称,允许(但不建议)有几行或不同的主机键。当将来自不同域的短形式主机名放入文件中时,这将不可避免地发生。文件可能包含相互冲突的信息;如果可以从任何文件中找到有效信息,则接受身份验证。
其中一种(较少的)常用是SSH服务器,通常通过VIP在高可用性上下文中用作SFTP服务器:当故障从一个节点转移到另一个节点时,主机身份验证可能会发生变化。
您可以两次使用ssh-keyscan 10.0.4.4
并附加其他选项(例如用于哈希隐私的选项-H
):一次在每个不同的VM上,检索所有可能的主机密钥,然后将它们或其中的一些附加到~/.ssh/known_hosts
中。
然后将不再发生身份验证错误,直到尝试访问具有相同地址的第三个无关节点。
发布于 2022-09-30 17:00:18
您不确定开发机器的操作系统,但这在Linux或Mac上都适用于openSSH。
从命令行
ssh -o StrictHostKeyChecking=no 10.0.4.4
或者用行设置~/..ssh/config
Host 10.0.4.4
StrictHostKeyChecking=no
如果您控制VM,并且它们是Linux,则可以将/etc/ssh/
中的所有关键文件从一个VM复制到另一个VM,然后重新启动sshd
。这将提供相同的主机密钥。
https://serverfault.com/questions/1111985
复制相似问题