VS Code远程连接成功但无法打开文件夹的问题求助
VS Code Remote SSH 连接Windows 11主机异常解决办法
问题说明
已经用OpenSSH for Windows通过密钥认证连上两台Windows 11远程主机,但VS Code打不开远程文件夹,碰到两个错误:
- 无法解析工作区文件夹(ENOPRO):提示找不到对应资源的文件系统提供者
- 连不上远程扩展主机服务器:报错
bash程序未找到
设备清单:
- 客户端:Windows 11 + VS Code
- 远程主机A:Windows 11 + 装了VS Code(本地能正常开文件夹)
- 远程主机B:Windows 11 + 没装VS Code
已知信息:
- SSH密钥认证没问题,VS Code里的PowerShell终端能正常登远程主机
- 远程登录账号是管理员权限
- 之前调过
userfolder\.ssh\authorized_keys的权限,还删过DEVELOPER用户文件夹的特殊权限 - 已经删过本地
C:\Users\DEVELOPER\.vscode目录和相关文件,问题依旧
先解决「bash程序未找到」的问题
Windows默认没bash环境,VS Code Remote扩展默认会找bash,得强制让它用PowerShell当远程shell:
- 打开VS Code设置(按
Ctrl+,) - 搜
remote.SSH.remotePlatform,点「编辑 in settings.json」 - 加或者改配置,把对应Windows主机的平台设为
windows:"remote.SSH.remotePlatform": { "你的远程主机IP/主机名": "windows" } - 保存配置后,重新连远程主机
再解决「无法解析工作区文件夹(ENOPRO)」的问题
这个一般和远程文件权限、VS Code Remote的文件提供者异常有关,按下面步骤来:
步骤1:恢复远程用户文件夹权限
之前删过DEVELOPER文件夹的特殊权限,可能导致VS Code访问不了远程文件:
- 远程登主机,右键点
C:\Users\DEVELOPER文件夹 → 属性 → 安全 → 高级 - 点「继承」选项,勾上「启用继承」,然后应用保存
- 检查
.ssh文件夹权限:确保只有当前用户和SYSTEM有完全控制权限,删掉其他用户的权限(权限太宽会搞出SSH或VS Code访问问题)
步骤2:重置远程端的VS Code缓存
就算删了本地.vscode,远程主机的缓存可能还留着:
- 对装了VS Code的远程主机A:
- 远程登录后,删掉
C:\Users\DEVELOPER\.vscode-server目录 - 重启VS Code客户端,重新连远程,让扩展重新部署远程服务
- 远程登录后,删掉
- 对没装VS Code的远程主机B:
- 远程登录后,看看有没有
C:\Users\DEVELOPER\.vscode-server目录,有的话删掉 - 确认OpenSSH服务权限:打开服务管理器,找到
OpenSSH SSH Server,右键属性 → 登录 → 确保用的是本地系统账户或者权限足够的账户
- 远程登录后,看看有没有
步骤3:验证远程文件访问权限
在VS Code的远程PowerShell终端里,跑下面命令,确认能正常访问目标文件夹:
# 列出目标文件夹内容 Get-ChildItem "你要打开的远程文件夹路径" # 创建测试文件 New-Item -Path "你要打开的远程文件夹路径\test.txt" -ItemType File
如果命令跑失败,那就是Windows文件系统权限的问题,得再调整文件夹的安全权限,确保远程登录账户有读、写权限
额外排查项
- 更新VS Code Remote - SSH扩展到最新版:旧版本可能和Windows远程连接有兼容性问题
- 关闭客户端的杀毒/防火墙:有些安全软件会拦截VS Code和远程主机的文件通信
- 重新生成SSH密钥:虽然现在能登录,但密钥权限异常也可能间接出问题,重新生成后替换
authorized_keys,还要确保.ssh文件夹权限是700,authorized_keys是600(Windows里对应仅当前用户可读可写)
内容的提问来源于stack exchange,提问作者DavidG
相关产品推荐
相关产品推荐

