当您知道主机密钥已更改时,是否有一种简单的方法可以更新known_hosts中的信息?

当您知道主机密钥已更改时,是否有一种简单的方法可以更新known_hosts中的信息?

如果主机的操作系统已重新安装并重新生成了公钥,则通过 sshing 到该主机的操作当然会失败,因为新密钥与旧密钥不匹配。

有没有更简单的方法告诉 ssh 您知道主机的密钥已更改并且您希望对其进行更新。我认为使用文本编辑器或 sed 之类的东西来删除有问题的行有点容易出错。

答案1

用于ssh-keygen -R hostname从文件中删除主机名(或 IP 地址).ssh/known_hosts。下次连接时,新的主机密钥将添加到您的.ssh/known_hosts文件中。

答案2

TARGET_HOST=[hostname or IP]

# Remove the old key(s) from known_hosts
ssh-keygen -R $TARGET_HOST

# Add the new key(s) to known_hosts (and also hash the hostname/address)
ssh-keyscan -H $TARGET_HOST >> ~/.ssh/known_hosts

下次连接时,您将连接没有被询问,Are you sure you want to continue connecting (yes/no)?因为密钥已经在known_hosts文件中。

相关内容