1. 为什么要在 VS Code Remote-SSH 里统一 AI Key
VS Code 的 Remote-SSH 是很多人做 Linux 开发的主力方式:本地 Windows 或 Mac 只负责界面,真正的编译、跑脚本、拉依赖都在局域网那台 Linux 主机上完成。但一旦你开始在这台远程主机上用 AI 辅助写代码,问题就来了——每装一个 AI 插件就要填一次 Key,Claude Code、Cline、Continue、各种 CLI 工具各存一份配置,换台机器或者重装系统就得从头再来一遍。
我自己的场景是:一台局域网里的 Ubuntu 开发机,IP 固定成 192.168.1.50,平时用 VS Code Remote-SSH 连上去写 Python 和 Shell。之前每个 AI 工具都单独配 Key,结果有一次 Key 轮换,我改了半小时才把所有地方对齐。后来改成用 TaoToken 做统一入口,所有工具都指向同一个 API 地址和同一把 Key,配置量直接砍到一份。
这篇就按「局域网 Linux + VS Code Remote-SSH + TaoToken 统一 Key」这条链路走一遍。适合已经在用 Remote-SSH、但被多工具 Key 分散折磨的开发者,也适合刚接触远程开发、想一次把 AI 通道配好的新手。全程给可复制的settings.json、config.toml骨架,以及 SSH 连通性和远程扩展加载的验证动作,照着做就能在远程 Linux 侧稳定调用 AI 能力。
2. TaoToken 前置准备:一把 Key 打通所有工具
TaoToken 在这里扮演的角色是「统一 API 通道」:你只需要在它那边拿一把 Key,然后把各个 AI 工具的 base_url 都指向https://taotoken.net/api,就不用再为每个工具单独申请、单独记 Key 了。对 Remote-SSH 场景特别友好,因为远程主机上的配置文件可以全部引用同一个环境变量。
第一步,打开浏览器进控制台创建 Key。地址是https://taotoken.net/console,登录后在 API Keys 页面新建一个,复制出来先存好,后面配置要用。这个 Key 就是你在远程 Linux 上所有 AI 工具共用的那一把。
第二步,确认你要用的模型通道。TaoToken 的 API 入口统一是https://taotoken.net/api,注意这个地址不带任何查询参数,直接作为 base_url 填进工具配置即可。如果你用的是 Claude Code 这类需要 Anthropic 兼容格式的工具,走的是同一套通道,具体接入方式可以参考官方文档https://taotoken.net/doc。
第三步,想先验证 Key 是否可用,可以直接在模型对话页面发一条测试消息,地址https://taotoken.net/chat。这一步不用写代码,纯网页操作,确认 Key 有额度、能正常返回内容,再去配远程环境,能省掉很多「到底是网络问题还是 Key 问题」的排查时间。
注意:Key 属于敏感凭证,不要直接硬编码进会提交到 Git 的配置文件里。推荐做法是写进远程主机的 shell 环境变量,工具配置里用变量引用。
如果你后面打算长期在远程主机上跑编码类 Agent,可以顺带了解一下 Coding Plan,地址https://taotoken.net/coding-plan,它更适合高频、长时间的编码调用场景,和单次对话的计费方式不太一样。
3. 可复制配置:SSH config 与远程 settings.json
这一节是核心,分三块:本地 SSH 配置、远程 shell 环境变量、VS Code 远程 settings.json。三块配好,链路就通了。
3.1 本地 SSH config 骨架
在本地机器的~/.ssh/config(Windows 是C:\Users\你的用户名\.ssh\config)里加一段。关键是HostName填局域网 IP,User填远程 Linux 的用户名,IdentityFile指向你的私钥:
Host lan-linux HostName 192.168.1.50 User devuser Port 22 IdentityFile ~/.ssh/id_ed25519 ServerAliveInterval 30 ServerAliveCountMax 3ServerAliveInterval这两行是防断连的,局域网偶尔抖动时能自动保活,实测下来比默认配置稳不少。配好后在本地终端跑ssh lan-linux能进去,说明 SSH 层没问题,再去 VS Code 里连。
3.2 远程 Linux 侧的环境变量
登录远程主机后,把 TaoToken 的 Key 写进 shell 配置。编辑~/.bashrc或~/.zshrc,加两行:
export TAOTOKEN_API_KEY="sk-你从控制台复制的那串" export TAOTOKEN_BASE_URL="https://taotoken.net/api"保存后执行source ~/.bashrc让它生效。这样做的意义是:所有在远程 shell 里启动的 AI 工具都能读到这两个变量,不用每个工具单独填。验证一下:
echo $TAOTOKEN_BASE_URL # 应输出 https://taotoken.net/api3.3 远程 settings.json 与 config.toml 骨架
VS Code 连上远程后,它的用户设置是存在远程侧的。打开命令面板(Ctrl+Shift+P),输入Preferences: Open Remote Settings (JSON),在打开的settings.json里加 AI 相关配置。下面是一个通用骨架,把 base_url 指向 TaoToken:
{ "terminal.integrated.env.linux": { "TAOTOKEN_API_KEY": "${env:TAOTOKEN_API_KEY}", "TAOTOKEN_BASE_URL": "https://taotoken.net/api" }, "aiAssistant.baseUrl": "https://taotoken.net/api", "aiAssistant.apiKeyEnv": "TAOTOKEN_API_KEY", "continue.baseUrl": "https://taotoken.net/api" }不同插件的字段名不一样,aiAssistant、continue这些只是示例键名,实际以你装的插件文档为准,核心是让 base_url 都指向同一个地址、Key 都读同一个环境变量。
如果你用的是需要 TOML 配置的 CLI 工具(比如某些编码 Agent),在远程主机的~/.config/工具名/config.toml里写:
[api] base_url = "https://taotoken.net/api" api_key_env = "TAOTOKEN_API_KEY" model = "claude-sonnet" [behavior] timeout = 120 retry = 2api_key_env这种写法让工具自己去读环境变量,配置文件里不出现明文 Key,安全又方便轮换。
4. 验证请求:从 SSH 连通到 AI 调用成功
配置写完必须验证,不然出了问题不知道卡在哪一层。按下面顺序逐层确认。
第一层,SSH 连通性。本地终端跑:
ssh -v lan-linux "echo connected"看到connected输出就说明 SSH 通了。如果卡住,多半是 IP 不对或防火墙拦了 22 端口,先在远程主机上sudo ufw status看一眼。
第二层,远程环境变量。连上远程后跑:
ssh lan-linux "source ~/.bashrc && echo \$TAOTOKEN_BASE_URL"能打印出https://taotoken.net/api就对了。如果为空,说明变量没写进正确的 shell 配置文件,或者 VS Code 远程终端用的不是 bash。
第三层,API 连通性。在远程主机上用 curl 直接打一次接口,确认网络和 Key 都没问题:
curl -s -o /dev/null -w "%{http_code}\n" \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ https://taotoken.net/api返回 200 或 401 都说明网络通了(401 是 Key 问题,200 是正常)。如果返回 000 或超时,那是远程主机出网的问题,跟 VS Code 无关。
第四层,VS Code 远程扩展加载。在远程窗口里打开扩展面板,确认 AI 插件显示的是「已在 SSH: lan-linux 上安装」而不是本地。装好后打开插件面板发一条测试请求,能正常返回内容,整条链路就算打通了。
提示:VS Code 的远程扩展和本地扩展是分开的,AI 插件一定要装在远程侧,否则它读不到远程的环境变量和文件。
5. 本篇常见错排查
配这条链路时踩过的坑基本集中在下面几个,对照着查能省不少时间。
报错一:Permission denied (publickey)。这是 SSH 密钥问题,不是 TaoToken 的问题。检查本地私钥权限(Linux/Mac 下chmod 600),确认公钥已经追加到远程主机的~/.ssh/authorized_keys。Windows 下还要注意私钥路径别用反斜杠。
报错二:远程终端里$TAOTOKEN_API_KEY为空。最常见的原因是变量写进了~/.bashrc,但 VS Code 远程终端默认用的是别的 shell,或者非交互式 shell 不加载.bashrc。解决办法是把变量同时写进~/.profile,或者在 VS Code 的settings.json里用terminal.integrated.env.linux显式注入。
报错三:插件报401 Unauthorized。Key 本身没问题的话,检查是不是复制时带了空格或换行。另外确认 base_url 填的是https://taotoken.net/api,不要多加斜杠或路径后缀,路径拼错也会导致鉴权失败。
报错四:请求超时但 curl 能通。这种情况通常是插件自己的代理设置或超时太短。在插件配置里把 timeout 调到 120 秒以上,并确认插件没有走系统代理。
报错五:改了配置但没生效。VS Code 远程设置改完要重载窗口(命令面板Developer: Reload Window),环境变量改完要新开终端。老终端不会自动读取新变量,这是最容易忽略的一点。
6. 后续怎么用:把统一 Key 固化下来
链路打通后,建议做两件事让它长期稳定。一是把远程主机的环境变量写进一个独立的~/.taotoken_env文件,然后在.bashrc里source它,这样轮换 Key 时只改一个文件。二是把 VS Code 的远程settings.json纳入版本管理(记得用环境变量引用,别提交明文 Key),换机器时直接同步。
需要长期跑编码 Agent 的话,Coding Plan 的入口在https://taotoken.net/coding-plan,适合把远程主机当成常驻开发环境来用。API Key 的创建和管理都在https://taotoken.net/api-keys,接入细节看https://taotoken.net/doc,想先试模型效果就去https://taotoken.net/chat发一条。整套配下来,远程 Linux 上的 AI 工具就都走同一把 Key、同一个通道了,后面加新工具也只是复制一段配置的事。