SSH 连接到远程服务器时公钥发生了变化处理

204 阅读1分钟

当你在使用 SSH 连接到远程服务器时遇到以下警告:

snackpub@snackpubdeMacBook-Pro ~ % ssh root@8.135.119.9

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:Rhyz36BUOW/O2wqlhEvQP4BY/rbbNDPAhojQp9N9CWc.
Please contact your system administrator.
Add correct host key in /Users/snackpub/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/snackpub/.ssh/known_hosts:12
Host key verification failed.

这意味着 SSH 客户端检测到远程主机的公钥发生了变化。为了确保安全性,你需要进行以下几步操作:

  1. 确认是否真的发生了变更:
  • 联系系统管理员确认是否进行了任何更改。
  • 检查服务器是否有更新或迁移等情况。
  1. 记录新的公钥指纹:
     SHA256:Rhyz36BUOW/O2wqlhEvQP4BY/rbbNDPAhojQp9N9CWc
  1. 删除旧的公钥记录:

    删除 /Users/snackpub/.ssh/known_hosts 文件中对应的旧公钥记录:

      sudo nano /Users/snackpub/.ssh/known_hosts
    

    image.png

    找到对应的行(通常包含 8.135.119.9 和 ECDSA),并删除这一行。

  2. 重新连接并接受新公钥:

    重新尝试连接

        ssh -o StrictHostKeyChecking=no 用户名@8.135.119.9 
    

    输入账户密码验证后会自动将新的公钥添加到 .ssh/known_hosts 文件。

  3. 验证新公钥已添加:

    再次查看 known_hosts 文件,确认新的公钥已经被添加:

      cat /Users/snackpub/.ssh/known_hosts
    
  4. 使用Vim快速的删除行

    • 删除当前行:使用 dd。
    • 删除多行:可以在 dd 前面加上数字来指定要删除的行数,例如 3dd 表示删除当前行及其下面的两行。