SSH 指纹告警
这是 SSH 的“主机指纹变更”告警。通常发生在你重装/升级了服务器、换了 SSH 主机密钥,或同一 IP 指向了另一台机器。先确认安全,再更新本地的 known_hosts。
一、先确认这次指纹是否可信(强烈建议)
在你能够登录到服务器控制台(例如通过服务商的网页控制台或另一条已信任的通道)时,查看服务器当前的公钥指纹,并与提示里的 SHA256:Ua0iZJ+... 比对:
在服务器上执行:
# 查看 ED25519 指纹(你提示里显示的就是 ED25519)
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
# 如需 ECDSA/ RSA(可选)
sudo ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
sudo ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
若显示的 SHA256 指纹与客户端报错里的 完全一致,说明是同一台可信主机,只是密钥变了;可以更新本地缓存。
如果无法确认或指纹不一致,不要继续连接,需调查是否有 DNS/IP 被劫持或连错机器(潜在中间人风险)。
二、在 Windows(PowerShell)上清理旧指纹并写入新指纹
你的报错显示本机路径:C:\Users\Que\.ssh\known_hosts 第 6 行有旧的 ECDSA 记录,而服务器现在给的是 ED25519。按下面步骤做:
方式 A(最简单,推荐)
# 1) 删除该主机在 known_hosts 中的所有旧记录
ssh-keygen -R 157.90.125.67
# 如果你也用域名连过(例如 www.aicargo.pro / wg.aicargo.pro),也一并移除:
ssh-keygen -R www.aicargo.pro
ssh-keygen -R wg.aicargo.pro
# 2) 重新连接并接受新的指纹
ssh -o StrictHostKeyChecking=accept-new root@157.90.125.67
方式 B(先预取并核对再写入)
# 1) 预取服务器的 ED25519 公钥并显示其指纹
ssh-keyscan -t ed25519 157.90.125.67 | ssh-keygen -lf -
# 2) 若与服务器端查到的 SHA256 指纹一致,则先清旧,再写新:
ssh-keygen -R 157.90.125.67
ssh-keyscan -t ed25519 157.90.125.67 >> "$env:USERPROFILE\.ssh\known_hosts"
# 3) 再连接
ssh root@157.90.125.67
方式 C(手动编辑)
用记事本打开 C:\Users\Que\.ssh\known_hosts,删除第 6 行(以及同 IP/同域名的其他重复行),保存后再次连接,按提示核对并接受新指纹。
三、常见排查点
- 同一 IP 多条记录:同一 IP 可能同时以 IP、主机名写入多条;全部清理更稳妥(见方式 A)。
- 密钥类型变化:以前缓存的是 ECDSA,现在服务器只给 ED25519,会报冲突;清理后重新接受即可。
- 重装/迁移服务器:主机密钥会变化,这是正常现象,但务必核对一次指纹再接受。
按上面做,确认安全后就能顺利连上了。需要我帮你远程比对你服务器当前的指纹吗?把你在服务器上执行 ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub 的输出贴过来就行。