长期未连SSH后报错‘Host key verification failed’的解决方法咨询
解决SSH "Host key verification failed" 问题的步骤
1. 确认本地known_hosts文件位置
不同系统的文件路径:
- Linux/macOS:
~/.ssh/known_hosts - Windows(Git Bash/OpenSSH环境):
C:\Users\<你的用户名>\.ssh\known_hosts;WSL环境则是/home/<用户名>/.ssh/known_hosts
2. 精准执行ssh-keygen -R命令
确保使用你连接服务器时的主机名或IP地址:
- 若用IP连接(如
ssh user@192.168.1.100),执行:ssh-keygen -R 192.168.1.100 - 若用主机名连接(如
ssh user@server.example.com),执行:ssh-keygen -R server.example.com - 若连接时指定了非默认端口(如
ssh -p 2222 user@server),且known_hosts中存储格式为[server]:2222,则执行:ssh-keygen -R "[server]:2222"
3. 手动删除对应条目(命令失效时)
直接打开known_hosts文件,搜索服务器的IP/主机名,删除对应行后保存:
- Linux/macOS可使用编辑器操作:
按nano ~/.ssh/known_hostsCtrl+W搜索目标内容,找到后删除整行,按Ctrl+O保存、Ctrl+X退出。 - Windows直接用记事本打开对应路径的known_hosts文件,删除目标行后保存。
4. 修复文件权限(避免命令无法修改文件)
若ssh-keygen -R命令不生效,可能是known_hosts或.ssh目录权限错误,执行以下命令修正(仅Linux/macOS):
chmod 600 ~/.ssh/known_hosts chmod 700 ~/.ssh
5. 重新连接服务器
完成上述操作后,重新执行SSH连接命令,例如:
ssh user@server.example.com
当提示确认新主机密钥时,输入yes即可建立连接。
特殊情况处理
若你使用了SSH配置文件(~/.ssh/config)中的别名(如Host myserver指向实际服务器),则执行ssh-keygen -R myserver即可,因为known_hosts中可能存储的是别名对应的条目。
内容的提问来源于stack exchange,提问作者Varunmuhil Viswanathan
相关产品推荐
相关产品推荐

