如何解决 SSH 报错“REMOTE HOST IDENTIFICATION HAS CHANGED”问题(适用于 Windows、macOS 和 Linux)
在使用 SSH 连接服务器时,可能会遇到如下警告:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
问题原因
该警告表示服务器的主机密钥发生了变化,SSH 认为这可能存在安全风险。常见原因包括:
- 服务器重装或主机密钥更新。
- 服务器的 IP 地址或域名发生变化。
- 你连接到不同的服务器但地址相同。
解决方法
不论你使用 Windows、macOS 或 Linux,解决方法都是相同的:
1. 删除旧的主机密钥
你可以通过命令删除 SSH 缓存中的旧主机密钥,然后重新连接服务器。
步骤:
- 打开命令行工具(Windows 使用 CMD 或 PowerShell,macOS 和 Linux 使用终端)。
- 运行以下命令,删除旧的主机密钥:
例如你的服务器IP是 192.168.1.1,则执行:
ssh-keygen -R 192.168.1.1
再次尝试连接服务器:
ssh root@192.168.1.1
系统会提示你接受新的主机密钥,输入 yes 并继续连接。
2. 使用 Termius 等专业 SSH 工具
为了更方便地管理 SSH 连接,推荐使用 Termius 这款跨平台 SSH 工具。它支持 Windows、macOS、Linux、iOS 和 Android,且具有图形界面,操作简单。
Termius 使用步骤:
前往 Termius 官网 下载并安装适合你设备的客户端。
打开 Termius,添加服务器连接信息(如服务器地址、用户名、密码或 SSH 密钥)。
连接服务器,Termius 会自动处理主机密钥等问题,避免手动操作。
无论你使用的是 Windows、macOS 还是 Linux,当遇到 SSH 报错“REMOTE HOST IDENTIFICATION HAS CHANGED”时,都可以通过删除旧的主机密钥解决问题。为了更高效地管理 SSH 连接,建议使用 Termius 等专业工具。