Cae*_*ium 302
在您的~/.ssh/config(如果此文件不存在,只需创建它):
Host *
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)
这将为您连接的所有主机关闭它。*如果您只希望将其应用于某些主机,则可以将 替换为主机名模式。
确保文件的权限仅限于您自己访问:
sudo chmod 400 ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
Mar*_*kHu 291
与其将它添加到~/.ssh/config所有 Host * 的文件中,不如指定一个特定的主机更安全。
您还可以像这样在命令行上传递参数:
ssh -o StrictHostKeyChecking=no yourHardenedHost.com
Run Code Online (Sandbox Code Playgroud)
pac*_*ist 148
值得指出的是,您的 ssh 配置中的设置:
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)
这意味着主机密钥仍会添加到 .ssh/known_hosts - 您不会被提示是否信任它们,但如果主机更改,我敢打赌您会收到有关它的重大警告。您可以通过添加另一个参数来解决此问题:
UserKnownHostsFile /dev/null
Run Code Online (Sandbox Code Playgroud)
这会将所有这些“新发现的”主机添加到垃圾箱。如果主机密钥更改,则没有问题。
我不会提到绕过主机密钥上的这些警告有明显的安全后果 - 你应该小心你这样做是出于正确的原因,并且你实际上连接的是你想要连接而不是一个恶意主机,因为此时您已经侵蚀了 ssh 作为解决方案的主要安全性。
例如,如果您尝试使用命令行进行设置,则完整命令将是:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@host
Run Code Online (Sandbox Code Playgroud)
不过这很愚蠢 - 鉴于上面的 ssh 配置文件的工作示例在所有情况下都可能更有意义。
小智 22
供参考。我更喜欢在使用 cssh 时禁用主机检查。
alias cssh='ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
Run Code Online (Sandbox Code Playgroud)
qwe*_*guy 13
如果您想一次性禁用,请使用:
ssh -o UserKnownHostsFile=/dev/null
Run Code Online (Sandbox Code Playgroud)
如果主机密钥更改,这也将起作用,并确保不将密钥保存为受信任以增加安全性。
从听起来像,
NoHostAuthenticationForLocalhost yes
Run Code Online (Sandbox Code Playgroud)
可能对你来说已经足够好了。而且您仍然能够保持这种安全感。