[ssh]系统重装后,如何重新设置window免密登录远程linux服务器
您遇到的 SSH 错误 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 是一个安全提示,表明您尝试连接的远程主机 root-C-001 的主机密钥与您本地计算机上记录的密钥不匹配。
错误原因
当您第一次通过 SSH 连接到一台服务器时,SSH 客户端会将该服务器的公钥(也称为主机密钥)保存在一个名为 known_hosts 的文件中。在后续连接时,SSH 客户端会核对服务器出示的密钥与 known_hosts 文件中保存的是否一致。如果不一致,就会显示此警告。
发生这种情况的常见原因有:
- 服务器系统重装或升级:远程服务器重新安装了操作系统或升级了 SSH 服务,导致生成了新的主机密钥。
- 服务器 IP 地址或主机名变更:您连接的服务器 IP 地址或主机名可能被分配给了另一台不同的机器。
- 网络配置更改:网络中的某些设备(如负载均衡器)可能会导致您连接到不同的后端服务器,而这些服务器具有不同的主机密钥。
- 中间人攻击(Man-in-the-Middle Attack):虽然可能性较小,但这也是一个安全警告,提示可能有人正在尝试拦截您的连接。
解决方案
如果确认是由于服务器端正常的变更(例如系统重装)导致的问题,您可以按照以下步骤解决:
推荐方法:使用 ssh-keygen 命令移除旧密钥
这是最安全、最简单的方法。ssh-keygen 是一个用于管理 SSH 密钥的工具。
-
打开命令提示符(Command Prompt)或 PowerShell。
-
运行以下命令,将
root-C-001替换为您要连接的主机名或 IP 地址(根据您的截图,IP 地址是10.178.000.115):ssh-keygen -R root-C-001或者使用 IP 地址:
ssh-keygen -R 10.178.000.115这条命令会自动从
known_hosts文件中移除与该主机相关的旧密钥。
备用方法:手动编辑 known_hosts 文件
如果您想手动编辑文件,也可以按照以下步骤操作:
- 找到
known_hosts文件。根据您的错误提示,该文件位于C:\Users\user_name\.ssh\known_hosts。
后续步骤
完成上述任一解决方案后,再次尝试通过 SSH 连接到 root-C-001:
ssh root-C-001
这次连接时,系统会提示您远程主机的真实性无法确定,并显示新密钥的指纹。这与您第一次连接到一个新服务器时的提示是相同的。
如果您确认正在连接到正确的服务器,请输入 yes 并按回车键。这样,新的主机密钥就会被保存到您的 known_hosts 文件中,之后您就可以正常登录了。
