一、问题背景
重装服务器系统再次连接 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) 验证服务器身份:
- 第一次连接服务器时,SSH 会保存服务器的公钥指纹到本地:
- 后续连接时,会对比服务器发来的指纹与本地保存的指纹。
- 如果指纹不一致,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
发表回复