最近在使用 VS Code 进行远程开发时,发现一个棘手的问题:本地开启代理后 Copilot 能正常调用 Claude 模型,但一旦切换到远程 SSH 环境,Agent 模式就会报错提示工作区异常。
问题的核心在于之前的常见解决方案强制将 Copilot 扩展的 UI 运行在本地(extensionKind: ui)。这虽然解决了本地联网问题,却导致远程服务器的文件路径在本地上下文中无法被正确识别,从而触发敏感文件编辑权限警告。
如何解决?
关键在于不要让代理和 UI 限制死在本地,而是让远程环境直接接管代理请求。
-
清理本地配置 打开本地用户设置(settings.json),注释掉强制本地运行的配置项,特别是涉及
GitHub.copilot的extensionKind设置。 -
配置远程代理 在 SSH 隧道或远程服务器配置中,将本地的代理端口(例如 1082)穿透到远程环境。确保远程服务器能够访问该代理。
-
设置远程环境变量 在远程会话的
settings.json中添加代理配置,注意不要强制 UI 在本地运行。
{
"http.proxy": "http://127.0.0.1:1082",
"http.proxyStrictSSL": false
}
重启 VS Code 后,Claude 模型会重新出现,且由于工作区始终在远程,Agent 模式的编辑功能也能正常使用。

