如果主机的操作系统已重新安装并重新生成了公钥,则通过 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
文件中。