清理 VSCode 的 SSH 连接记录需删除系统级 ~/.ssh/known_hosts 文件:Windows 路径为 %USERPROFILE%\.ssh\known_hosts,macOS/Linux 执行 rm -f ~/.ssh/known_hosts;同时应清除 Remote-SSH 本地缓存目录(如 %USERPROFILE%\.vscode-server 或 ~/.vscode-server)并重启 VSCode,否则残留状态可能导致重连失败。

如何清理 VSCode 的 SSH 连接记录(本地 known_hosts)
VSCode 本身不直接管理 SSH 连接记录,它复用系统级的 ~/.ssh/known_hosts。连接失败、主机密钥变更或容器重建后端口复用时,旧记录会干扰新连接,表现为 “Host key verification failed” 或反复弹确认框。
清理方式取决于操作系统:
-
Windows:打开文件资源管理器,导航到
%USERPROFILE%\.ssh,删除known_hosts和可能存在的known_hosts_old -
macOS / Linux:终端执行
rm -f ~/.ssh/known_hosts
注意:这不是 VSCode 插件缓存,删错不会影响设置,但会丢失所有已信任主机的指纹 —— 下次连接对应主机时会重新提示确认,属正常行为。
Remote-SSH 插件本地缓存目录在哪?怎么清?
Remote-SSH 插件在本地会缓存远程服务器元数据和临时状态,路径与系统一致:%USERPROFILE%\.vscode-server(Windows)或 ~/.vscode-server(macOS/Linux)。这个目录不是远程的,而是本地用来协调连接流程的“中转站”,异常断连后残留会导致重连卡在 “Reconnect” 按钮无响应。
- 必须完全退出 VSCode(任务管理器里确认没有
Code.exe、Code Helper.exe或node.exe进程) - 再手动删除整个
%USERPROFILE%\.vscode-server(Windows)或~/.vscode-server(macOS/Linux)目录 - 不要只删子目录(如
bin/current),否则插件仍会读取损坏的元数据
为什么删了 known_hosts 还连不上?检查 Remote-SSH 状态命令
常见误区是只清 SSH 记录,却忽略 Remote-SSH 扩展自身僵死的状态。当点击 “Reconnect” 没反应、输出面板卡在 “Installing VS Code Server” 或报 Cannot read property 'length' of undefined,说明扩展上下文已损坏,无法自动恢复。
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS) - 输入并运行
Remote-SSH: Kill VS Code Server on Host - 选择目标主机 —— 这会向远程发送信号清理
~/.vscode-server下的活跃进程和 socket 文件 - 完成后必须关闭当前 VSCode 窗口(别点 “Keep Window”),再重启重连
清理后重连失败?重点盯这两个残留点
即使删了本地缓存、清了 known_hosts、也执行了 Kill 命令,仍可能失败。根本原因常藏在两个地方:
- 远程服务器上
~/.vscode-server目录里还有僵尸进程:用ps aux | grep -E "(vscode-server|code-server)" | grep -v grep查,有就pkill -f "vscode-server" - 远程磁盘空间不足或 NFS 挂载异常:检查
df -h;若用 NFS,留意.nfs*临时文件,需先lsof | grep nfs找 PID 杀掉再删
VSCode 1.86+ 对服务端二进制签名校验更严,任何残留的旧版 bin/ 子目录都可能导致启动拒绝 —— 不是删不干净,是没删全。


















