46

我在一个 IP 地址上的系统会经常更改的网络上工作。它们在工作台上上下移动,DHCP 确定它们获得的 IP。

如何禁用主机密钥缓存/检查似乎并不简单,这样我每次需要连接到系统时都不必编辑 ~/.ssh/known_hosts 。

我不关心主机的真实性,它们都在 10.xxx 网段上,而且我比较确定没有人在对我进行 MITM。

有没有“正确”的方法来做到这一点?我不在乎它是否会警告我,但是每次都停止并导致我为该 IP 刷新我的 known_hosts 条目很烦人,在这种情况下它并没有真正提供任何安全性,因为我很少连接到系统超过一次或两次然后将IP分配给另一个系统。

我查看了 ssh_config 文件,发现我可以设置组,这样可以保护连接到外部机器的安全性,我可以忽略检查本地地址。这将是最佳的。

从搜索中我发现了一些非常强烈的意见,从“不要乱来,这是为了安全,处理它”到“这是我曾经处理过的最愚蠢的事情,我只是想把它关掉”......我在中间的某个地方。我只想能够完成我的工作,而不必每隔几分钟就从文件中清除一个地址。

谢谢。

4

6 回答 6

95

这是我用于我们不断变化的 EC2 主机的配置:

maxim@maxim-desktop:~$ cat ~/.ssh/config 
Host *amazonaws.com
        IdentityFile ~/.ssh/keypair1-openssh
        IdentityFile ~/.ssh/keypair2-openssh
        User ubuntu
        StrictHostKeyChecking no
        UserKnownHostsFile /dev/null

这会禁用主机确认StrictHostKeyChecking no,并使用一个很好的 hack 来防止 ssh 将主机标识保存到持久文件UserKnownHostsFile /dev/null中注意,作为附加值,我添加了用于连接到主机的默认用户以及尝试几种不同标识的选项私钥。

于 2011-02-21T15:28:57.303 回答
10

假设您使用的是 OpenSSH,我相信您可以设置

CheckHostIP no

防止在 known_hosts 中检查主机 IP 的选项。从手册页:

检查主机IP

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

于 2009-11-02T03:43:14.877 回答
8

这花了我一段时间才找到。我见过的最常见的用例是当你有 SSH 隧道到远程网络时。这里的所有解决方案都产生了破坏我的 Nagios 脚本的警告。

我需要的选项是:

NoHostAuthenticationForLocalhost yes

顾名思义,这也仅适用于本地主机。

于 2011-04-11T05:27:43.650 回答
3
  1. 编辑你的 ~/.ssh/config

nano ~/.ssh/config(如果还没有,别担心,nano 会创建一个新文件)

  1. 添加以下配置:
Host 192.168.*
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
于 2020-06-28T18:56:52.723 回答
2

如果您想暂时禁用此功能或无需更改 SSH 配置文件,您可以使用:

ssh -o UserKnownHostsFile=/dev/null username@hostname
于 2014-10-29T02:45:37.193 回答
1

由于每个其他答案都解释了如何禁用密钥检查,因此这里有两个保留密钥检查但避免问题的想法:

  1. 使用主机名。如果您控制 DHCP 服务器并且可以分配正确的名称,这很容易。之后,您可以只使用已知的主机名,更改 ips 无关紧要。

  2. 使用主机名。即使您不控制 DHCP 服务器,您也可以使用类似的服务avahi,它将在我们的本地网络中广播服务器的名称。它负责解决碰撞和其他问题。

  3. 使用主机密钥签名。构建机器后,使用本地 CA 对其进行签名(您不需要全局受信任的 CA)。之后,您无需单独信任机器上的每个主机。信任 known_hosts 文件中的签名 CA 就足够了。ssh-keygen手册页或许多博客文章中的更多信息( https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with- ubuntu )

于 2015-11-18T05:04:41.443 回答