我可以设置 SSH known_hosts 来忽略特定主机名吗?

我可以设置 SSH known_hosts 来忽略特定主机名吗?

我最近使用 Raspbian 系统映像设置了一些无头 Raspberry Pi 系统。它们默认使用 zeroconf 域名raspberrypi.local。在更改它之前,我必须使用 SSH 连接到新服务器,它总是向我咆哮:

> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @      WARNING: POSSIBLE DNS SPOOFING DETECTED!           @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

直到我打开 known_hosts 文件并删除前一个条目后,它才会连接。然后,当它连接时,它会自动添加一个新条目,以便raspberrypi.local下次搞砸一切。

我理解并赞赏检查密钥并自动添加新密钥的逻辑,但我认为对于这种特定情况来说,这没有意义。raspberrypi.local除非是我刚刚插入的新服务器,否则我永远不会连接到调用的服务器,在这种情况下它将绝不拥有已知的可信赖密钥。

我可以看到known_hosts 规范我可以在地址端(即接受来自此范围内任何地址的密钥),但我想要做的是在密钥端设置通配符(接受来自此特定域名的任何密钥)。或者更好的是,根本不检查来自此域名的密钥。

有什么办法可以告诉 known_hosts 忽略(不检查密钥就传递)单个特定域名?

答案1

在您的 中尝试这个ssh_config,这会阻止 ssh 保存密钥,但仅限于这个主机名。

Host raspberrypi.local
  UserKnownHostsFile /dev/null

该手册还提到StrictHostKeyChecking

如果此标志设置为“否”或“关闭”,ssh 将自动将新的主机密钥添加到用户已知的主机文件中,并允许继续连接具有更改的主机密钥的主机,但要受到一些限制。

但是我没有找到有关这些限制的详细信息,而且您无论如何都不想保存主机密钥。

相关内容