修复 Proxmox 中的“主机密钥验证失败”问题
2026-06-12
1. 什么是 SSH?
SSH(安全外壳协议)是一种用于通过不安全网络访问远程计算机的安全协议。它允许用户通过加密连接远程登录并执行命令。
2. 什么是主机密钥?
每台SSH服务器都拥有一个唯一的主机密钥,用于验证服务器的身份。当你首次连接到一台新的SSH服务器时,SSH会将该主机密钥保存在你的本地计算机上。
3. 为何会出现“主机密钥验证失败”错误?
当您尝试连接 SSH 服务器却遇到“主机密钥验证失败”错误时,可能由以下原因导致:
主机密钥已更改:如果目标主机的密钥发生变更(例如重装操作系统后),SSH 将检测到此变更并拒绝连接。
远程主机的IP地址已被劫持:如果攻击者冒充您试图连接的主机,SSH将通过其主机密钥验证机制阻止该连接。
本地“known_hosts”文件损坏:您的“~/.ssh/known_hosts”文件可能包含错误或过时的密钥信息。
4. 如何解决“主机密钥验证失败”问题?
接下来,我们将逐步介绍解决此问题的方法。
4.1 检查错误信息
首先,当您看到“主机密钥验证失败”错误消息时,请查看具体的错误详情。通常,错误信息会告诉您是哪个主机的密钥验证失败。
4.2 检查“known_hosts”文件
SSH 将已知主机密钥存储在“~/.ssh/known_hosts”文件中。使用以下命令查看该文件:
cat ~/.ssh/known_hosts
4.3 删除旧主机密钥
如果您确认要重新连接的主机密钥已更改,可以删除“known_hosts”文件中对应的条目。使用以下命令编辑该文件:
nano ~/.ssh/known_hosts
找到与主机对应的行并将其删除,然后保存文件。
您还可以使用以下命令直接删除特定的主机密钥:
ssh-keygen -R <hostname_or_IP>
请将“<hostname_or_IP>”替换为实际的主机名或IP地址。
4.4 重新连接
删除旧主机密钥后,尝试通过 SSH 重新连接:
ssh user@hostname
如果一切正常,SSH 将提示您接受新的主机密钥。请输入“yes”以继续。
4.5 验证安全性
在接受新密钥之前,请确保您所连接的主机是可信的。您可以通过其他方式(例如电话、电子邮件等)确认主机的密钥。
使用 Vinchin 解决方案备份 Proxmox 虚拟机
Vinchin 备份与恢复 提供一整套高级功能,全面保护 Proxmox VE 环境,严格遵循“3-2-1 备份原则”,确保数据安全与完整性。
其功能包括自动虚拟机备份、免代理备份和局域网免占用(LAN-Free)选项,以及异地副本功能,从而实现可靠的灾难恢复。即时恢复、高效的数据缩减技术,以及云归档选项,进一步提升了数据管理能力。此外,该解决方案还集成了数据加密及勒索软件防护机制,提供额外的安全保障。它还支持在受支持的虚拟平台之间无缝进行虚拟机到虚拟机(V2V)迁移,确保数据迁移的灵活性与便捷性。
只需 4 个步骤,即可备份 Proxmox VE 虚拟机:
1. 选择备份对象。

2. 选择备份目标位置。

3. 配置备份策略。

4. 审核并提交任务。

全球已有数千家企业采用 Vinchin 备份与恢复解决方案来满足其数据保护需求。您可通过为期15天的全面试用版开始体验其丰富的功能,该试用版包含全部特性。联系我们,提供您的 Proxmox VE 环境详细信息,我们将为您提供量身定制的解决方案,无缝融入您的 IT 架构。
下载免费试用版
适用于多种数据备份
* 15天全功能免费安全下载
Proxmox “主机密钥验证失败” 常见问题解答
1. 如果我怀疑遭遇中间人攻击,该怎么办?
如果您怀疑遭到攻击,请勿立即接受新的SSH密钥。相反,应通过联系系统管理员或经由可信渠道进行核实,以确认服务器的身份。在继续操作之前,请务必手动比对密钥指纹。
2. 如果我从 known_hosts 文件中删除旧的主机密钥,会发生什么?
如果您删除旧的主机密钥,下次通过 SSH 连接到该服务器时,系统将提示您接受新的密钥。如果您确认该服务器合法,且密钥变更确属有意为之,则可接受并保存新密钥。
结论
本文详细解释了使用 SSH 时出现“主机密钥验证失败”问题的原因及解决方法。通过查看错误信息、删除旧密钥并重新连接,您应能成功解决此问题。