如果我想指定不想处理主机密钥的 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 *