SSH 报错REMOTE HOST IDENTIFICATION HAS CHANGED解决方法

一、问题背景

重装服务器系统再次连接 SSH 连接时,会出现如下报错:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Host key verification failed.

提示信息中可能还会包含:

Offending ECDSA key in /Users/username/.ssh/known_hosts:26
Host key for 192.168.XXX.XXX has changed

二、为什么会发生

SSH 通过 主机密钥(Host Key) 验证服务器身份:

  1. 第一次连接服务器时,SSH 会保存服务器的公钥指纹到本地:
  2. 后续连接时,会对比服务器发来的指纹与本地保存的指纹。
  3. 如果指纹不一致,SSH 会拒绝连接,防止中间人攻击。
  • 重装系统时,服务器会重新生成新的 SSH 主机密钥。
  • 因此,旧的指纹与新的不匹配。
  • SSH 就会报“REMOTE HOST IDENTIFICATION HAS CHANGED”。

三、解决方法

在本地终端执行:

ssh-keygen -R <服务器IP>
ssh root@<服务器IP>

首次连接会提示:

Are you sure you want to continue connecting (yes/no)?

输入:

yes

评论

发表回复

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