![SSH:远程主机标识已更改](https://linux22.com/image/1619263/SSH%EF%BC%9A%E8%BF%9C%E7%A8%8B%E4%B8%BB%E6%9C%BA%E6%A0%87%E8%AF%86%E5%B7%B2%E6%9B%B4%E6%94%B9.png)
我有一台运行 ubuntu 的机器和另一台运行 mac 的机器。它们连接到同一个路由器。
过去,我可以使用 ssh 和 IP 地址从我的 Mac 连接到 ubuntu。
我正在 ubuntu 机器上做大量的安装和升级工作。
然后,当我尝试从 Mac 访问 ubuntu 时,出现“远程主机标识已更改”错误,并且无法连接。
我搜索了互联网,得到了类似的资源这。遗憾的是我对 SSH 的了解很少,但我愿意学习。
我得到的信息是,由于某种我不知道的原因,SSH 已经发生了变化。并且在文件的第 2 行中存在known_hosts
有问题的旧密钥。
在链接的文章中说我应该删除有问题的行。
我的问题是:这是指 Mac 机器中的文件吗?(客户端)这样就足够了吗?
另一个问题是:
如果我删除该行,known_hosts
当我再次连接时,该行是否会使用正确的密钥重新生成?
可以使用吗
ssh-keygen -R "you server hostname or ip"
?
谢谢您的帮助
答案1
您的 Ubuntu 机器的sshd
主机密钥可能已更改,因为您在重新安装操作系统时没有保留它,因此必须生成一个新的。
是的,您可以按照所说的从客户端的 known_hosts 文件中删除该行来修复客户端上的错误消息。
是的,ssh-keygen -R hostname
做同样的事情。
是的,当您下次连接时,它会询问您是否要接受(新)密钥,就像第一次一样。
答案2
从服务器角度看,客户端的指纹已发生改变。因此,您必须删除服务器上的以下行:已知主机包含你的客户端IP,但它将是再生稍后尝试连接给客户。
还“ssh-keygen -R ip_地址”将会相同的事情:删除包含服务器端指纹的行。