
1. VS Code Remote-SSH 里 Copilot 的 Claude 突然消失问题出在哪先说结论这不是 Copilot 坏了也不是 Claude 模型下线了而是远程服务器上的 VS Code 进程没有拿到你本地那套网络出口配置。我平时的工作流是本地 Windows/Mac 开 VS Code通过 Remote-SSH 连到一台 Linux 开发机代码、终端、调试全在远端。Copilot Chat 面板在本地窗口里能看到 Claude 系列一旦切到远程窗口模型下拉框里就只剩 GPT 系Claude 直接蒸发。点开 Copilot 日志大概率能看到两类报错401 Unauthorized或者local proxy failed。为什么会这样拆开看就清楚了。Copilot Chat 的模型请求是由当前窗口所在的 VS Code 扩展宿主进程发出的。本地窗口的扩展宿主跑在你本机走本机网络远程窗口的扩展宿主跑在远端服务器上走服务器的网络。你在本地开的那个网络出口远端进程根本感知不到。所以本地能用远程就 401。local proxy failed则是另一层VS Code 有个http.useLocalProxyConfiguration开关默认在远程场景下不一定生效导致远端扩展宿主想复用本地代理配置却拿不到请求直接失败。那正确的解法是什么不是去服务器上装一堆网络工具而是把 Copilot 的请求指向一个统一的 API 通道让远端进程也能用同一套 Key 和 endpoint 发请求。我实测下来把远程服务器的settings.json里的 endpoint 和鉴权字段改到 TaoToken 的统一通道Claude 就回来了。TaoToken 在这里扮演的角色很简单它是一个兼容 OpenAI/Anthropic 协议的统一 API 入口你拿到一个 Base URL 和一个 Key填进配置就能用不需要在服务器上折腾网络层。这篇适合谁看用 VS Code Remote-SSH 做开发、Copilot Chat 里想用 Claude、但远程窗口模型列表里找不到 Claude 的人。跟着做你会得到一份可复制的settings.json片段、一套逐条验证动作以及几个真实报错的排查路径。需要提前说明的是下面所有配置都基于远程服务器窗口的 settings不是本地用户 settings。这一点搞错后面全白搭。2. 动手前先把 TaoToken 的 Key 和 Base URL 准备好在改settings.json之前你得先有一个能用的 API 通道。这一步很快几分钟搞定。打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 注册登录后进控制台。你要拿两样东西API Key和Base URL。Base URL 通常是https://taotoken.net/api这种形式Key 是一串sk-开头的字符串。这两个值后面要填进配置先复制到记事本备用。如果你只是想让 Copilot Chat 里的 Claude 能用拿一个 Key 就够了。但如果你后面还想接 Claude Code、Cline 或者 Codex 这类编码工具建议顺手看一下 Coding Plan它适合长期编码和 Agent 场景额度模型跟按量调用不太一样。入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_plan 。模型 ID 这块要注意Copilot Chat 里选 Claude 时实际发出的 model 字段得是通道支持的名称比如claude-sonnet-4-20250514这类。具体支持哪些去模型对话页面确认一下最稳 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chat 。在那边发一条消息能通说明 Key 和模型 ID 没问题再往 VS Code 里填。还有一个坑要提前避远程服务器的 settings.json 路径和本地不一样。本地是%APPDATA%\Code\User\settings.jsonWindows或~/Library/Application Support/Code/User/settings.jsonMac远程是通过 Remote-SSH 连上后在远程窗口里按CtrlShiftP输入Preferences: Open Remote Settings (JSON)打开的那个文件。你要改的是后者。把 Key、Base URL、模型 ID 三样凑齐再进下一步。缺一个后面验证都会卡住。3. 可复制的 settings.json 配置片段现在打开远程服务器的 settings.json。操作路径在 Remote-SSH 窗口里按CtrlShiftP输入Preferences: Open Remote Settings (JSON)回车。注意标题栏会显示Remote [你的主机名]确认是远程设置再改。下面是我实测能用的配置片段。把它合并进你现有的 JSON 里不要整个覆盖保留你原有的其他设置。{ github.copilot.chat.advanced.modelEndpoint: https://taotoken.net/api, github.copilot.chat.advanced.modelApiKey: sk-你的TaoTokenKey, github.copilot.chat.advanced.modelId: claude-sonnet-4-20250514, http.useLocalProxyConfiguration: true, github.copilot.chat.advanced.enableCustomModel: true }逐条解释一下这几个字段的作用方便你按自己情况调整。github.copilot.chat.advanced.modelEndpoint是请求发往的地址填 TaoToken 的 Base URL。modelApiKey填你刚才复制的 Key。modelId填通道支持的 Claude 模型 ID如果你在模型对话页面看到的是别的名称以那边为准。http.useLocalProxyConfiguration这个开关是远程场景的关键。设为true后远程扩展宿主会尝试复用本地代理配置避免local proxy failed。这也是很多教程里漏掉的一步。enableCustomModel打开自定义模型通道让 Copilot Chat 走你指定的 endpoint而不是默认的官方地址。如果你用的是 Cline 或者 Claude Code 这类工具配置结构不一样但三件套是一样的Base URL、Key、Model ID。Cline 的 MCP 配置里baseUrl填https://taotoken.net/apiapiKey填 Keymodel填模型 ID。Claude Code 的话改的是~/.claude/settings.json或者环境变量ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY。Codex 走的是auth.json字段名不同但逻辑一致。改完保存。JSON 语法要检查多一个逗号少一个引号都会让整个配置失效。VS Code 右下角如果有报错提示先修语法。4. 重载窗口并发起一次 Claude 对话验证配置改完必须重载窗口才生效。按CtrlShiftP输入Developer: Reload Window回车。窗口会重新加载Remote-SSH 重连需要几秒。重载后打开 Copilot Chat 面板。在模型下拉框里找 Claude 系列。如果配置正确Claude 应该重新出现。选一个 Claude 模型发一条测试消息比如「用一句话解释什么是递归」。接下来核对返回状态。三种方式第一看 Chat 面板有没有正常回复。有回复且内容合理说明通道通了。第二打开输出面板。CtrlShiftU下拉选GitHub Copilot Chat。看日志里有没有401、403或者local proxy failed。如果请求成功日志里会显示请求发往的 endpoint 和返回状态码 200。第三如果 Chat 没回复按CtrlShiftP输入GitHub Copilot: Collect Diagnostics它会生成一份诊断报告里面包含网络请求详情。我实测下来第一次重载后偶尔还是找不到 Claude再重载一次就好了这是扩展宿主的缓存问题。如果两次都不行进第 5 节排查。验证通过的标准很简单Chat 面板能正常返回 Claude 的回复日志里没有 401 和 proxy failed。两个条件都满足收工。5. 常见报错逐条排查401、local proxy failed、reading choices这一节按真实报错来。你大概率会碰到下面几种对照着查。401 Unauthorized。这是最常见的。原因通常是 Key 填错、Key 过期、或者 endpoint 和 Key 不匹配。排查动作把modelApiKey的值复制出来去模型对话页面发一条消息如果那边也 401说明 Key 本身有问题重新生成一个。如果那边能通说明是 VS Code 配置里的 Key 有空格或者换行检查引号内有没有多余字符。local proxy failed。这个报错说明远程扩展宿主想走本地代理但失败了。检查http.useLocalProxyConfiguration是不是设成了true。如果已经是 true 还报把这条临时改成false强制走直连 endpoint再重载试试。因为你的请求已经指向 TaoToken 的通道直连也能通。reading choices 报错类似Error reading choices: ...。这通常是返回体格式不符合 Copilot 预期。检查modelId填的模型名称是否被通道支持。有些模型 ID 在通道里叫法不同去模型对话页面确认准确的名称。另外确认 endpoint 结尾没有多余的斜杠https://taotoken.net/api和https://taotoken.net/api/在某些客户端里行为不一样。OAuth 相关报错。如果你之前登录过 Copilot 官方账号配置里可能残留 OAuth token跟自定义 endpoint 冲突。排查动作在远程窗口按CtrlShiftP输入GitHub Copilot: Sign Out登出后重载让它走自定义通道。配置不生效。最常见的原因是改错了文件。确认你改的是Preferences: Open Remote Settings (JSON)不是本地用户设置。标题栏显示Remote才是对的。如果上面都试过还不行去接入文档页面看最新的配置说明 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdoc 。文档里会更新支持的模型 ID 和字段名比我这里写的更及时。6. 后续怎么用按场景选通道配置跑通之后日常用起来就顺了。Copilot Chat 里选 Claude请求走 TaoToken 通道远程本地都能用。如果你只是偶尔在 Chat 里问问题现在这套配置就够了。Key 在 API Keys 页面管理 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keys 。额度不够了去那边充。如果你后面要长期用 Claude 做编码或者接 Agent 工作流比如 Claude Code、Cline 这类建议看一下 Coding Plan。它跟按量调用的计费方式不同适合高频场景。入口 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_plan 。想先试试模型通不通直接去模型对话页面发消息最快 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chat 。最后提醒一个我踩过的坑远程服务器的 settings.json 改完后如果你换了 SSH 主机配置不会跟着走每台远程机都要单独配一次。把这段 JSON 存成模板换机器时直接粘贴省事。