最近发现 VS Code 的 Copilot 在远程 SSH 环境下无法正常使用 Claude 模型,甚至出现 Agent 模式编辑文件报错的情况。虽然本地开启代理后能识别模型,但一旦涉及远程路径,就会因为工作区识别错误导致功能受限。
问题的核心在于代理配置的位置与扩展运行环境的匹配。如果强制将 Copilot 扩展限制在本地运行(例如设置 extensionKind 为 ui),而代理又指向本地回环地址,远程服务器就无法通过该代理访问外部服务,或者因路径映射不一致触发安全警告。
要解决这个问题,我们需要调整配置策略:不再强制扩展在本地运行,而是确保远程环境也能正确配置网络代理。
首先,检查并注释掉本地配置文件中强制本地运行的相关设置。这通常位于用户的全局 settings.json 中,移除针对 GitHub Copilot 等扩展的 ui 限制,避免扩展被锁定在本地进程。
接下来,重点在于远程服务器的配置。你需要进入 SSH 连接的远程环境,打开对应的 settings.json 文件。在这里添加 HTTP 代理配置,确保远程进程能通过该代理出站。如果你的代理是在本地机器上运行的,请确保通过 SSH 端口转发将本地代理暴露给远程服务器。
{
"http.proxy": "http://127.0.0.1:端口号",
"http.proxyStrictSSL": false
}
注意,这里的 127.0.0.1 指的是远程服务器视角下的 localhost,通常需要通过 SSH 隧道或端口转发将本地代理暴露给远程。如果你的代理是本地运行的 SOCKS 或 HTTP 代理,请确保远程能够访问到该端口。
完成上述配置后,重启 VS Code。此时 Copilot 应该能在远程会话中正常加载 Claude 模型,且 Agent 模式的工作区权限提示也会消失,因为扩展现在是在远程上下文中运行,能够正确识别远程文件路径。

