VS Code Remote-SSH扩展EINVAL错误求助:无法建立远程连接
解决VS Code Remote-SSH路径解析错误导致无法连接的问题
问题核心
从exthost.log的报错信息能明显看到,Remote-SSH扩展尝试创建目录时生成了非法路径:
Error: EINVAL: invalid argument, mkdir 'C:\Users\*username*\AppData\Local\Programs\Microsoft VS Code\"C:'
这是路径解析时出现引号残留、拼接错误,导致无法创建必要的临时目录,进而彻底阻断SSH连接建立。
解决方案
1. 重置Remote-SSH配置
- 打开VS Code,按
Ctrl+Shift+P唤起命令面板,执行Remote-SSH: Reset SSH Host Configuration清空现有SSH主机配置 - 打开
settings.json(快捷键Ctrl+,后点击右上角的「打开设置JSON」按钮),搜索remote.SSH相关配置,检查是否存在带多余引号的异常路径,比如remote.SSH.configFile若配置了带引号的路径,直接修正为正常格式(例:C:\Users\<你的用户名>\.ssh\config)
2. 清理Remote-SSH扩展缓存与数据
- 完全关闭VS Code
- 删除Remote-SSH扩展的本地文件夹:
C:\Users\<你的用户名>\.vscode\extensions\ms-vscode-remote.remote-ssh-*(*代表版本号,直接删除整个文件夹) - 清理VS Code缓存:删除
C:\Users\<你的用户名>\AppData\Roaming\Code\Cache和C:\Users\<你的用户名>\AppData\Roaming\Code\CachedData两个目录下的所有内容 - 重启VS Code,重新安装Remote-SSH扩展后再配置SSH连接
3. 检查系统SSH环境
- 打开命令提示符,输入
ssh -V,确认OpenSSH客户端能正常运行(输出版本信息即为正常) - 若使用VS Code自带的SSH,检查
settings.json里的remote.SSH.path配置,确保路径正确且无多余引号(默认是ssh,指定绝对路径时要写成C:\Windows\System32\OpenSSH\ssh.exe这类格式)
4. 终极方案:完全重装VS Code(仅前面方法无效时使用)
- 通过控制面板卸载VS Code
- 删除残留配置目录:
C:\Users\<你的用户名>\AppData\Roaming\Code和C:\Users\<你的用户名>\.vscode - 下载最新版VS Code重新安装,再配置Remote-SSH扩展
附用户提供的报错日志
2022-12-08 00:43:12.981 [info] Extension host with pid 388 started 2022-12-08 00:43:13.044 [info] ExtensionService#_doActivateExtension vscode.microsoft-authentication, startup: false, activationEvent: 'onAuthenticationRequest:microsoft' 2022-12-08 00:43:13.063 [info] ExtensionService#_doActivateExtension vscode.git-base, startup: true, activationEvent: '*', root cause: vscode.git 2022-12-08 00:43:13.073 [info] ExtensionService#_doActivateExtension vscode.git, startup: true, activationEvent: '*' 2022-12-08 00:43:13.091 [info] ExtensionService#_doActivateExtension vscode.github, startup: true, activationEvent: '*' 2022-12-08 00:43:13.114 [info] ExtensionService#_doActivateExtension vscode.github-authentication, startup: false, activationEvent: 'onAuthenticationRequest:github' 2022-12-08 00:43:13.141 [info] Eager extensions activated 2022-12-08 00:43:13.143 [info] ExtensionService#_doActivateExtension vscode.debug-auto-launch, startup: false, activationEvent: 'onStartupFinished' 2022-12-08 00:43:13.146 [info] ExtensionService#_doActivateExtension vscode.emmet, startup: false, activationEvent: 'onStartupFinished' 2022-12-08 00:43:13.151 [info] ExtensionService#_doActivateExtension vscode.merge-conflict, startup: false, activationEvent: 'onStartupFinished' 2022-12-08 00:43:13.159 [info] ExtensionService#_doActivateExtension ms-vscode-remote.remote-wsl-recommender, startup: false, activationEvent: 'onStartupFinished' 2022-12-08 00:43:13.167 [info] ExtensionService#_doActivateExtension ms-vscode-remote.remote-containers, startup: false, activationEvent: 'onStartupFinished' 2022-12-08 00:43:13.193 [info] ExtensionService#_doActivateExtension ms-vscode-remote.remote-wsl, startup: false, activationEvent: 'onStartupFinished' 2022-12-08 00:43:46.716 [info] ExtensionService#_doActivateExtension ms-vscode-remote.remote-ssh, startup: false, activationEvent: 'onCommand:opensshremotes.openEmptyWindow' 2022-12-08 00:44:09.327 [error] Error: EINVAL: invalid argument, mkdir 'C:\Users\*username*\AppData\Local\Programs\Microsoft VS Code\"C:' opensshremotes.addNewSshHost {"value":"ms-vscode-remote.remote-ssh","c":"ms-vscode-remote.remote-ssh"} 2022-12-08 00:44:09.328 [error] Error: EINVAL: invalid argument, mkdir 'C:\Users\*username*\AppData\Local\Programs\Microsoft VS Code\"C:' opensshremotes.openEmptyWindow {"value":"ms-vscode-remote.remote-ssh","c":"ms-vscode-remote.remote-ssh"}
内容的提问来源于stack exchange,提问作者cmdlanes
相关产品推荐
相关产品推荐

