忽略子网的 SSH 主机密钥验证

忽略子网的 SSH 主机密钥验证

我想告诉我的 OpenSSH 客户端(linux)忽略给定 IP 地址范围的主机密钥验证,可以吗?

背景:在将服务器移动到生产 IP 之前,我们使用此 DHCP 范围来构建服务器,因此我会定期收到那些 SSH 警告,并且每次都必须删除有问题的密钥......

答案1

相当常见的用例是将其放在你的ssh_config( ~/.ssh/config)中:

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

根据答案openssh-unix-dev

答案2

如果您Host的 ssh 配置 ( ~/.ssh/config) 文件中有一些条目作为实际HostName条目的别名,那么您需要将此块放在配置文件的最底部。

Host alpha
  HostName alpha.example.com

Match exec "ping -q -c 1 -t 1 %h | grep '10\.0\.'"
   StrictHostKeyChecking no
   UserKnownHostsFile none

这与@Jakuje 的回答只有一点点不同。关键的区别在于确保Match条目是文件中的最后一个条目,并且命令ping使用的是%h而不是%n

答案3

根据其他答案,这里有一个对我有用的例子视窗使用OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

Match exec "ping -n 1 -w 25 %n | findstr 192\.168\. > nul"
   StrictHostKeyChecking no
   UserKnownHostsFile none

答案4

当您想要更多的控制权并稍微缩小范围时。

Host 192.168.8.* 10.10.14*.* *.vm.my-net.com
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

相关内容