Действительно, причина в том, что ваша среда DHCP присвоила вашему серверу новый IP-адрес.
Всякий раз, когда ssh подключается к IP-адресу, которого у него нет в known_hosts
файле, он будет реагировать в соответствии с вашей StrictHostKeyChecking
конфигурацией, смотрите man ssh_config
:
StrictHostKeyChecking If this flag is set to “yes”, ssh(1) will never automatically add host keys to the ~/.ssh/known_hosts file, and refuses to connect to hosts whose host key has changed. This provides maximum protection against trojan horse attacks, though it can be annoying when the /etc/ssh/ssh_known_hosts file is poorly maintained or when connections to new hosts are frequently made. This option forces the user to manually add all new hosts. If this flag is set to “no”, ssh will automatically add new host keys to the user known hosts files. If this flag is set to “ask”, new host keys will be added to the user known host files only after the user has con- firmed that is what they really want to do, and ssh will refuse to connect to hosts whose host key has changed. The host keys of known hosts will be verified automatically in all cases. The argument must be “yes”, “no”, or “ask”. The default is “ask”.
Как видите, ssh не пытается сопоставить / обновить какие-либо известные ключи с новым IP-адресом (что, вероятно, будет рассматриваться как угроза безопасности). Отсюда разные строки, соответствующие разным IP-адресам одному и тому же ключу хоста.
Если DHCP-сервер теперь назначит старый адрес другому серверу, и вы попытаетесь использовать ssh, он, скорее всего, будет иметь другой ключ хоста, и ssh-соединение будет отклонено. Чтобы избежать таких случаев, вы можете проверить, можете ли вы переключаться на статически назначенные IP-адреса (некоторые DHCP-серверы сами поддерживают статические сопоставления без изменений на клиентах).