为什么我把操作系统从 CentOS 改为 Ubuntu 后无法连接到 VPS?

tux*_*xtu 2 ssh

最近,我将我的 VPS 操作系统从 CentOS 更改为 Ubuntu。不幸的是,从那以后我无法连接到我的 VPS。以下消息一次又一次地出现(附上截图)。 在此处输入图片说明 为什么会发生这种情况,我该如何解决?

slm*_*slm 5

该消息会告诉您需要知道的一切。您需要编辑该文件,known_hosts并删除从以前的操作系统中添加的违规密钥。

每次安装不同的发行版时,都会为每个主机生成一组新的公共/私有 SSH 密钥。

使用编辑器

我通常只是打开文件vim并转到错误消息中指定的行号:

/home/fahim/.ssh/known_hosts:1 中的违规 RSA 密钥

行号为 1。进入后vim,转到第 1 行,:1然后将其删除,dd。完成后,保存文件,:w.

使用 ssh-keygen

您也可以以编程方式从文件中删除条目,但要小心,它会删除 IP 和/或主机名的所有匹配项,具体取决于您使用的方法。

$ ssh-keygen -R <hostname or IP>
Run Code Online (Sandbox Code Playgroud)

注意:如果您查看消息,它会告诉您运行此类命令:

删除: ssh-keygen -f "/home/fahim/.ssh/known_hosts" -R 23.88.229.252

例子

假设我有一个名为 smurfy 的主机。

$ ssh-keygen -R smurfy
# Host smurfy found: line 139 type RSA
/home/saml/.ssh/known_hosts updated.
Original contents retained as /home/saml/.ssh/known_hosts.old
Run Code Online (Sandbox Code Playgroud)

此处通过不使用-f开关指定文件,ssh-keygen将从默认known_hosts文件中删除条目,该文件位于此处,/home/saml/.ssh/known_hosts.