con*_*are 31 ssh bash known-hosts fingerprint
我有一些经常更改 IP 的云盒。
我使用主机名 ssh,但由于此错误消息,每次服务器启动时都必须编辑 known_hosts 文件:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is…
Run Code Online (Sandbox Code Playgroud)
除了任何安全风险以及与我想做的事情相关的风险之外,有没有办法忽略此错误或自动覆盖 known_hosts 文件,以便我不必总是自己编辑它?
Koo*_*out 33
另外:你可以尝试只禁用的CheckHostIP检查该名:
Host *
[ global settings .. ]
Host very.dynamic.host
CheckHostIP no
Run Code Online (Sandbox Code Playgroud)
sys*_*138 26
编辑您的 ssh_config 文件并添加更改此行:
CheckHostIP no
Run Code Online (Sandbox Code Playgroud)
CheckHostIP 默认为“是”。这只是做你失败的那种检查。关闭它意味着它只相信 IP 是可变的,并且会根据主机名进行密钥检查。
zaT*_*cky 10
这里的很多答案都有效 - 但从技术上讲,它们是解决方法。考虑到这一点,OpenSSH 已经有一个内置功能:HostKeyAlias
.
在 .ssh/config 文件中,添加HostKeyAlias <alias>
到主机配置:
host myserver.example.com
HostKeyAlias myserver.example.com
Run Code Online (Sandbox Code Playgroud)
有了这个,连接到服务器myserver.example.com
将不会使用主机名或IP 地址作为本地参考——它在连接到该服务器时将始终只使用给定的 HostKeyAlias。对我来说,使用主机名是有意义的 - 但你当然可以使用任何你喜欢的别名。
我自己的动态主机的典型配置如下:
host myserver
hostname myserver.dyn.example.com
HostKeyAlias myserver.private.example.com
Run Code Online (Sandbox Code Playgroud)
这也可以用于一些晦涩的场景,其中您知道一堆服务器具有相同的主机密钥(通常不应该是这种情况)。这将防止重复条目。将来,如果密钥合法更改,您不必替换/删除多个条目。只有一个。Gitlab 地理服务器就是一个很好的例子。
关于清除 known_hosts 文件,我建议查看与维护/删除陈旧的 known_hosts 条目特别相关的其他问题/答案。例如,参见https://serverfault.com/questions/29262/how-to-manage-my-ssh-known-hosts-file;user1953828 的回答给我留下了特别深刻的印象,尽管我看到它没有很多赞成票(还)。:)
归档时间: |
|
查看次数: |
15908 次 |
最近记录: |