系统重装之后,通过ssh无法登录

发布于:2025-05-09 ⋅ 阅读:(46) ⋅ 点赞:(0)
系统重装之后,通过ssh登录的时候报错:
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 ECDSA key sent by the remote host is SHA256:0Vhha2ZvN74HKh2vvQpS3zk. Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending ED25519 key in /var/lib/sss/pubconf/known_hosts:6
ECDSA host key for 10.2.2.15 has changed and you have requested strict Host key verification failed.

这个错误是由于系统重装后,远程主机的SSH密钥发生了变化,而本地计算机的 known_hosts 文件中仍然保存着旧的密钥记录。SSH客户端检测到这种不一致,出于安全考虑会拒绝连接,以防止中间人攻击(MITM)。

可能原因 解决方案
known_hosts 缓存问题 ssh-keygen -R 10.2.2.15 或删除相关文件
SSH 服务端密钥丢失 在目标服务器运行 sudo ssh-keygen -A
DNS/IP 冲突 检查 ping 和 arp
防火墙/网络问题 检查 telnet 10.2.2.15 22
SSH 客户端强制检查 临时加 -o StrictHostKeyChecking=no

如果仍然无法解决,请检查:

  • 完整的 ssh -vvv root@10.2.2.15 输出(调试信息)。

  • 目标服务器的 /etc/ssh/sshd_config 是否有特殊配置。

解决法:

1、先检查dns上是否有原来的ip的记录,nslookup 10.2.2.15 ,如果有相关的记录,则删除相关的记录,再重新加到dns或者重新加域。

2、清除缓存或者密钥记录

方法 1:删除旧的密钥记录(推荐)
  1. 打开终端,运行以下命令删除旧记录

    ssh-keygen -R 10.2.2.15

    10.2.2.15 是目标主机的IP或主机名,替换成你的实际地址)

  2. 重新连接,系统会提示你接受新的主机密钥:

    ssh root@10.2.2.15
    

方法 2:手动编辑 known_hosts 文件
  1. 找到报错中提到的 known_hosts 文件(如 /root/.ssh/known_hosts 或 /var/lib/sss/pubconf/known_hosts)。

  2. 用文本编辑器(如 vim 或 nano)打开该文件:

    nano /var/lib/sss/pubconf/known_hosts
  3. 删除与 10.2.2.15 相关的行(报错中提到的第6行)。

  4. 保存文件并重新连接。


方法 3:临时关闭严格主机密钥检查(不推荐,仅用于测试)

如果只是临时测试,可以禁用严格检查(不安全,慎用):

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@10.2.2.15

用超级管理员root 清除服务器缓存:sss_cache  -E  

但长期使用会降低安全性。


网站公告

今日签到

点亮在社区的每一天
去签到