You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu服务器SSH主机密钥频繁变更导致连接异常问题求助

Ubuntu服务器SSH主机密钥频繁变更导致连接异常问题求助

看起来你遇到了个挺头疼的SSH连接问题——主机密钥频繁跳变,时而能连时而被拒,重置密钥也没解决根本问题,这确实闹心。我来帮你梳理下排查方向和解决思路:

先确认是不是网络/主机商层面的问题

  • 先检查每次连接的目标IP是否一致:从Windows执行ping your_server_ip或者ssh -v your_server_ip,看输出里的目标IP和服务器实际IP是否匹配,会不会是主机商那边的负载均衡、IP复用或者网络配置问题,导致你偶尔连到了其他机器?毕竟你说同服务商的另一台Ubuntu服务器没这问题,不过还是得排除这个可能性。
  • 再次联系主机商,把你的问题细节(密钥频繁变更的时间规律、连接失败的具体提示)说清楚,让他们检查物理机/虚拟化层面的配置,比如是否有虚拟机IP冲突、他们的自动化管理工具是否误操作了你的服务器。之前的重置没改密码,可能他们只是重启了机器而非彻底重装,得让他们做更深入的排查。

排查服务器内部是否有自动修改密钥的脚本/进程

这大概率是问题根源,你可以按以下步骤排查:

  1. 检查定时任务:
    • 用crontab -l查看root用户的定时任务,有没有定时执行ssh-keygen或者删除/生成SSH主机密钥的命令;
    • 再检查系统级定时任务目录:ls -l /etc/cron.d/、cat /etc/crontab,看看有没有可疑的定时任务。
  2. 监控密钥文件的变更:
    • 先看密钥文件的修改时间:ls -l /etc/ssh/ssh_host_*,确认这些文件是不是真的在频繁被修改;
    • 安装auditd来监控文件变更:apt install auditd,然后添加监控规则:auditctl -w /etc/ssh/ssh_host_ed25519_key -p wa;
    • 之后查看审计日志:cat /var/log/audit/audit.log | grep ssh_host_ed25519_key,就能看到哪个进程/用户在修改这个密钥文件,顺着这个线索就能找到问题源头。
  3. 检查可疑进程和服务:
    • 执行ps aux | grep ssh-keygen,看有没有正在运行的ssh-keygen进程;
    • 用systemctl list-units --type=service列出所有系统服务,找名字奇怪或者不熟悉的服务,看看有没有会自动修改SSH配置的服务。

检查SSH配置本身

打开/etc/ssh/sshd_config,检查以下内容:

  • 有没有HostKey配置项指向了临时文件(比如/tmp/下的文件),如果是这样,每次SSH服务重启都会生成新密钥;
  • 有没有其他奇怪的配置,比如调用外部脚本生成密钥的配置,或者强制定期更换密钥的设置。

排查恶意软件/rootkit

虽然你重置过服务器,但不排除残留恶意程序的可能:

  • 安装rkhunter进行扫描:apt install rkhunter,然后执行rkhunter --check,它会帮你检测系统里的rootkit、可疑进程和恶意文件;
  • 也可以用chkrootkit:apt install chkrootkit,执行chkrootkit来辅助排查。

临时应急方案(仅用于测试,不安全)

如果暂时找不到根源,又需要紧急连接服务器,可以在Windows的PowerShell里执行ssh -o StrictHostKeyChecking=no your_server_ip,跳过主机密钥检查,但这会带来安全风险,只能临时用,不能长期依赖。

备注:内容来源于stack exchange,提问作者Mreza Nemati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 07:50:27