📜  远程主机标识已更改!如何在 ubuntu 中修复 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:41:55.711000             🧑  作者: Mango

远程主机标识已更改!如何在 Ubuntu 中修复

当在 Ubuntu 中连接到远程主机时,有时会出现“远程主机标识已更改”的错误。这通常是因为远程主机的 SSH 公钥已更改,也可能是因为中间人攻击。在这篇文章中,我们将介绍如何在 Ubuntu 中修复这个问题。

修复方法
第一步:备份本地 SSH 配置

在进行任何更改之前,请确保备份本地 SSH 配置,以防出现问题。输入以下命令备份本地 SSH 配置文件:

cp ~/.ssh/config ~/.ssh/config.bak
第二步:删除本地存储的主机密钥

在本地计算机中,SSH 使用存储的主机密钥来验证远程主机的身份。若远程主机更改了其密钥,本地计算机需要删除对应的主机密钥,并在下次连接时重新验证。

首先,输入以下命令列出本地计算机上存储的主机密钥:

ssh-keygen -F <远程主机 IP 或域名>

找到您想要删除的主机密钥的行,并将其输入以下命令中:

ssh-keygen -R <远程主机 IP 或域名>

现在,重新运行第一步中的命令,备份最新的 SSH 配置:

cp ~/.ssh/config ~/.ssh/config.bak
第三步:撤销当前用户的限制

如果您正在使用受限制的用户账户连接到远程主机,则需要在远程主机上撤销这些用户的限制。

例如,假设您的远程主机用户名为 ubuntu,您可以使用以下命令在远程主机上撤销用户的限制:

sudo usermod --shell /bin/bash ubuntu
第四步:ssh 连接远程主机

您可以尝试重新连接远程主机以验证修复是否生效:

ssh <远程主机 IP 或域名>

如果一切正常,您将成功连接到远程主机,而不会再收到“远程主机标识已更改”的错误。

结论

在本文中,我们介绍了如何在 Ubuntu 中修复“远程主机标识已更改”的错误。这些步骤包括备份本地 SSH 配置、删除本地存储的主机密钥、在远程主机上撤销用户限制以及重新连接远程主机。在进行这些更改之前,请确保备份本地 SSH 配置。