跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

VSCode连接Remote-SSH提示Host key verification failed怎么修复

Host key verification failed是OpenSSH因远程主机公钥与本地known_hosts不一致而拒绝连接,常见于服务器重装、IP复用等场景;应使用ssh-keygen -R 清理对应密钥,或检查ProxyJump路径、VSCode缓存及WSL/Windows known_hosts位置。 为什么Remote-SSH会报Host key verification failed 这个错误不是VSCode的问题,而是OpenSSH在连接时发现远程主机的公钥和本地
~/.ssh/known_hosts
里存的不一致。常见于:服务器重装系统、IP复用旧机器、启用新SSH服务端配置(比如换了
sshd_config
里的
HostKey
路径),或者你之前连过另一台同名主机。 OpenSSH出于安全默认拒绝这种“密钥突变”,防止中间人攻击——所以它宁可断连,也不自动覆盖。 快速清理旧密钥的两种方式 手动删对应行最直接,也最可控: 打开终端,运行:
ssh-keygen -R
(把
换成你配置里写的主机名或IP,比如
ssh-keygen -R 192.168.1.100
) 或者直接编辑
~/.ssh/known_hosts
,找到含该主机的那一行删掉(注意:一行可能对应多个主机,用空格分隔,别误删其他) 别用
ssh-keygen -R *
清空全部——万一你连过几十台生产机,全删了下次连都得重新确认,反而更麻烦。 连接时跳过验证?不推荐但有时真需要 仅限测试环境或内网可信网络,且你明确知道目标主机没被篡改: VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载 在VSCode的Remote-SSH配置中,给对应主机加字段:
"configFile": "/path/to/custom_ssh_config"
然后在
/path/to/custom_ssh_config
里写:
Host myserver HostName 192.168.1.100 User myuser StrictHostKeyChecking no UserKnownHostsFile /dev/null
注意:
StrictHostKeyChecking no
必须配合
UserKnownHostsFile /dev/null
,否则SSH仍会读默认
known_hosts
并报错 这个组合等于彻底放弃密钥校验,生产环境禁用。 为什么改了
known_hosts
还是报错 常见干扰项: VSCode Remote-SSH插件缓存了旧连接状态:关掉VSCode,再删
~/.vscode-server
(或
~/.vscode-remote
)下的缓存目录(不影响你本地配置,只清远程代理状态) 连接用了跳转主机(ProxyJump),实际校验的是跳板机的密钥,不是最终目标机——要删的是跳板机那行,不是目标机 Windows用户用WSL,要注意
~/.ssh/known_hosts
可能在WSL里,也可能在Windows的
%USERPROFILE%.ssh\known_hosts
,VSCode用哪个取决于你启动方式(从Windows GUI点开?还是从WSL终端里
code .
?) 密钥验证失败本身不难修,难的是搞清“到底在验证谁的密钥”。先确认连接路径,再定位
known_hosts
位置,比盲目删文件靠谱得多。

相关文章