📅  最后修改于: 2023-12-03 15:41:55.711000             🧑  作者: Mango
当在 Ubuntu 中连接到远程主机时,有时会出现“远程主机标识已更改”的错误。这通常是因为远程主机的 SSH 公钥已更改,也可能是因为中间人攻击。在这篇文章中,我们将介绍如何在 Ubuntu 中修复这个问题。
在进行任何更改之前,请确保备份本地 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 <远程主机 IP 或域名>
如果一切正常,您将成功连接到远程主机,而不会再收到“远程主机标识已更改”的错误。
在本文中,我们介绍了如何在 Ubuntu 中修复“远程主机标识已更改”的错误。这些步骤包括备份本地 SSH 配置、删除本地存储的主机密钥、在远程主机上撤销用户限制以及重新连接远程主机。在进行这些更改之前,请确保备份本地 SSH 配置。