重装了服务器系统,ssh证书更换,导致连不上服务器

今天重装了一台服务器,由debian改为ubuntu,使用阿里云重新绑定了密钥对,导致服务器连接失败。错误信息如下:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
……
Host key verification failed.

这个报错信息说明 服务器的主机密钥(Host Key)发生了变化,SSH 客户端发现和之前保存的不一致,所以拒绝连接。常见原因有:

  1. 服务器重装过系统,SSH 的 host key 变了。
  2. 更换了 IP 或 DNS 指向,连接到的机器其实不是原来的。
  3. 安全风险:如果不是你自己操作导致的变动,有可能存在中间人攻击(MITM)。

解决办法

如果你确认这是自己的服务器(比如你刚刚重装了系统或者更换了 SSH 配置),可以安全地删除旧的 key 再重新连接。

执行命令:

ssh-keygen -R server-ip

注意把server-ip改为你的服务器ip地址。这个命令是从~/.ssh/known_hosts文件中删除之前的连接记录,也可以直接编辑这个文件删除。

然后再次连接,会提示你保存新的主机指纹,输入 yes 即可。


如果提示Permissions 0644 for ....... are too open.这是证书文件的权限太大了,SSH 要求私钥文件必须 仅自己可读写,不能被其他用户访问。

执行下面的命令,修改私钥文件权限(只允许自己读写):

chmod 600 /Users/wujie/.ssh/aliyun99.pem

注意改为你自己的密钥路径,最后再次连接应该就可以了。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注