禁用 LAN 上的 openssh 主机密钥检查

禁用 LAN 上的 openssh 主机密钥检查

如果我想指定不想处理主机密钥的 LAN 地址,我该怎么做?

/etc/ssh/ssh_config
Host 192.168.*.*
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null

或者

UserKnownHostsFile none

即使

CheckHostIP no

不是在做事。 openssh 7.1p1。由于 ~/.ssh 或 /etc 中没有known_hosts 文件,我仍然得到:

The authenticity of host '<hostname> (192.168.2.2)' can't be established.
ECDSA key fingerprint is SHA256:.....
Are you sure you want to continue connecting (yes/no)?

此功能最近在 openssh 中进行了一些更改。 老问题建议使用如上所示的 ssh_config,但它似乎不再起作用。

是的,这是一个可怕的想法。 无论如何我都想做。这会带来中间人攻击的风险。如果存在配置问题,就有可能连接到错误的服务器。我只是厌倦了必须从known_hosts 中删除条目以及我拥有的经常更改指纹的多个虚拟机,并且愿意承担风险。是的,还有其他问题像这样,解释如何以正确的方式做到这一点,但我不想那样做。我只是想把它关掉。

答案1

看来你在 openssh 邮件列表上的解决方案似乎是可以忍受的。也转发在这里:

Match exec "ping -q -c 1 -t 1 %n | grep '192\.168\.'"
   StrictHostKeyChecking no
   UserKnownHostsFile /dev/null

来源:http://lists.mindrot.org/pipermail/openssh-unix-dev/2015-August/034335.html

答案2

在 ~/.ssh/config 或 /etc/ssh/ssh_config 中:

Host 192.168.*.*
  CheckHostIP no
  StrictHostKeyChecking no
  LogLevel=quiet
  UserKnownHostsFile=/dev/null

CheckHostIP no抑制有关欺骗的警告,并在没有主机文件时停止长时间暂停。

StrictHostKeyChecking no如果远程计算机的真实性有疑问,则删除有关无论如何连接的用户提示。

LogLevel=quiet删除有关将主机添加到已知主机列表的烦人消息。

UserKnownHostsFile=/dev/null停止创建known_hosts 文件。

如果您使用本地网络的主机名,则还需要添加这些主机名。或者,如果您确定只在本地网络上使用 ssh,则只需使用:Host *

相关内容