本地 Claude Code / Codex 远程开发环境配置笔记

本文记录两套常见配置:

  1. 使用本地 cc switch,让 Claude Code 走本地配置,并接入 DeepSeek 的 Claude 兼容接口。
  2. 使用本地 Windows 的 Codex 连接远程服务器上的 Codex CLI,并配置第三方 OpenAI 兼容接口。

⚠️ 注意:本文中的 sk-你的完整key 只是占位符。发布博客时不要暴露真实 API Key。


一、打开本地 cc switch,使用本地 Claude

如果你本地已经安装了 Claude Code,并且使用 cc switch 管理不同模型/接口,可以通过环境变量让 Claude Code 使用 DeepSeek 的 Claude 兼容接口。

1. 配置 DeepSeek Claude 兼容接口

需要设置以下环境变量:

ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
ANTHROPIC_AUTH_TOKEN="sk-你的完整key"

其中:

  • ANTHROPIC_BASE_URL:Claude Code 请求的 API 地址。
  • ANTHROPIC_AUTH_TOKEN:你的 DeepSeek API Key。

2. Windows PowerShell 临时设置方式

如果只是当前 PowerShell 窗口临时使用,可以执行:

$env:ANTHROPIC_BASE_URL="https://api.deepseek.com/anthropic"
$env:ANTHROPIC_AUTH_TOKEN="sk-你的完整key"

这种方式只在当前窗口生效,关闭窗口后失效。

3. Windows PowerShell 永久设置方式

如果希望长期生效,可以执行:

[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://api.deepseek.com/anthropic", "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-你的完整key", "User")

设置完成后,重新打开 PowerShell 或终端。


二、用本地 Windows Codex 连接远程服务器 Codex CLI

这部分目标是:

  • 本地 Windows 通过 SSH 免密连接远程 Linux 服务器。
  • 远程服务器安装 Codex CLI。
  • 远程服务器配置第三方 OpenAI 兼容接口,例如 apikey.quest
  • 本地 Codex 通过远程连接功能调用远程 Codex CLI。

三、配置 Windows 到远程服务器的 SSH 免密登录

1. 在 Windows 本地生成 SSH Key

在 PowerShell 中执行:

ssh-keygen -t rsa -b 4096 -C "test@example.com"

一路回车即可。默认会生成:

C:\Users\你的用户名\.ssh\id_rsa
C:\Users\你的用户名\.ssh\id_rsa.pub

其中:

  • id_rsa 是私钥,必须保存在本地,不能泄露。
  • id_rsa.pub 是公钥,可以上传到服务器。

2. 把本地公钥写入远程服务器

在 PowerShell 中执行:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

把命令里的 ip 替换成你的远程服务器 IP。

例如:

type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@8.222.xxx.xxx "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

这条命令的作用是:

  1. 读取 Windows 本地的 SSH 公钥。
  2. 通过 SSH 连接远程服务器。
  3. 在远程服务器创建 ~/.ssh 目录。
  4. 把本地公钥追加到远程服务器的 ~/.ssh/authorized_keys
  5. 设置正确的 SSH 权限。

3. 测试是否免密登录成功

执行:

ssh root@ip

如果不需要输入密码就能登录服务器,说明 SSH 免密配置成功。


四、在远程服务器配置 API Key 环境变量

Codex CLI 运行在远程服务器上,所以 API Key 也要配置在远程服务器上。

1. 编辑 /etc/environment

在远程服务器执行:

nano /etc/environment

在文件最后添加一行:

APIKEY_QUEST_API_KEY="sk-你的完整key"

保存并退出:

  • Ctrl + O 保存
  • Enter 确认
  • Ctrl + X 退出

2. 重启服务器

执行:

reboot

重启后重新 SSH 登录服务器。


3. 测试环境变量是否生效

在 Windows 本地 PowerShell 执行:

ssh root@ip 'printenv APIKEY_QUEST_API_KEY'

如果能输出你的 API Key,说明环境变量配置成功。

这里推荐使用 printenv 测试,而不是只在远程交互式终端里执行 echo $APIKEY_QUEST_API_KEY

原因是:Codex 远程调用时通常是非交互、非登录 shell,不一定会加载 .bashrc.profile
写入 /etc/environment 后,系统级环境变量更容易被远程进程读取。


五、在远程服务器安装 Codex CLI

在远程服务器执行:

curl -fsSL https://chatgpt.com/codex/install.sh | sh

安装完成后,可以测试:

codex --version

如果能看到版本号,说明安装成功。


六、配置远程 Codex CLI

1. 创建 Codex 配置目录

在远程服务器执行:

mkdir -p ~/.codex

2. 编辑配置文件

执行:

nano ~/.codex/config.toml

填入以下内容:

model_provider = "custom"
model = "gpt-5.5"
model_reasoning_effort = "high"
disable_response_storage = true

[model_providers.custom]
name = "custom"
wire_api = "responses"
requires_openai_auth = false
base_url = "https://apikey.quest/v1"
env_key = "APIKEY_QUEST_API_KEY"

[features]
remote_connections = true

注意:[features] 只需要写一次,不要重复写两段。

如果重复写:

[features]
remote_connections = true

[features]
remote_connections = true

可能会导致 TOML 配置解析错误。


七、配置说明

1. model_provider = "custom"

表示使用自定义模型服务提供商。

2. model = "gpt-5.5"

表示 Codex 默认调用的模型名称。

这里的模型名需要与你的第三方接口支持的模型名保持一致。

3. model_reasoning_effort = "high"

表示让模型使用较高推理强度。

一般可以取:

model_reasoning_effort = "low"
model_reasoning_effort = "medium"
model_reasoning_effort = "high"

high 的推理更充分,但响应可能更慢、消耗也可能更高。

4. disable_response_storage = true

表示关闭响应存储。

5. wire_api = "responses"

表示使用 OpenAI Responses API 格式。

6. requires_openai_auth = false

表示不使用 OpenAI 官方登录认证,而是使用自定义 API Key。

7. base_url = "https://apikey.quest/v1"

表示请求转发到第三方 OpenAI 兼容接口。

8. env_key = "APIKEY_QUEST_API_KEY"

表示 Codex 从环境变量 APIKEY_QUEST_API_KEY 读取 API Key。

所以前面必须确保远程服务器能正确输出:

printenv APIKEY_QUEST_API_KEY

八、可选:配置 auth.json

如果你的 Codex 配置或某些场景需要显式指定 API Key,也可以配置:

nano ~/.codex/auth.json

填入:

{
  "auth_mode": "apikey",
  "OPENAI_API_KEY": "sk-你的完整key"
}

查看文件内容:

cat ~/.codex/auth.json

一般情况下,如果 config.toml 中已经配置了:

env_key = "APIKEY_QUEST_API_KEY"

并且环境变量已经成功生效,就不一定需要额外配置 auth.json

如果遇到认证失败、读取不到 Key、或者某些插件/工具只识别 OPENAI_API_KEY,再考虑使用 auth.json


九、常见问题排查

问题 1:远程服务器里 echo $APIKEY_QUEST_API_KEY 能输出,但本地 SSH 测试输出为空

例如本地执行:

ssh root@ip 'echo $APIKEY_QUEST_API_KEY'

输出为空。

这种情况通常是因为:

  • 你只把变量写进了 .bashrc.profile
  • 但 SSH 命令执行的是非交互、非登录 shell;
  • 所以这些文件可能不会被加载。

推荐做法是写入:

/etc/environment

然后重启服务器,并用:

ssh root@ip 'printenv APIKEY_QUEST_API_KEY'

测试。


问题 2:Codex 报错 Missing environment variable

如果看到类似:

Missing environment variable: APIKEY_QUEST_API_KEY

说明 Codex CLI 没有读取到远程服务器上的环境变量。

检查步骤:

cat /etc/environment

确认里面有:

APIKEY_QUEST_API_KEY="sk-你的完整key"

然后重启:

reboot

再从本地测试:

ssh root@ip 'printenv APIKEY_QUEST_API_KEY'

如果这里仍然为空,说明系统环境变量没有正确生效。


问题 3:TOML 配置解析错误

如果看到类似:

invalid configuration

重点检查:

  1. 是否重复写了 [features]
  2. 字符串是否忘记加引号。
  3. 布尔值是否写成了字符串。

正确写法:

[features]
remote_connections = true

错误写法:

[features]
remote_connections = "true"

true 是布尔值,不要加引号。


问题 4:401 Unauthorized

如果出现:

unexpected status 401 Unauthorized

通常说明 API Key 不正确或没有被正确传给接口。

检查:

ssh root@ip 'printenv APIKEY_QUEST_API_KEY'

确认输出的是完整 Key,而不是空值,也不是只有 sk-


十、最终检查清单

完成配置后,可以按下面顺序检查:

ssh root@ip

确认免密登录成功。

ssh root@ip 'printenv APIKEY_QUEST_API_KEY'

确认远程环境变量能输出完整 API Key。

codex --version

确认远程服务器已经安装 Codex CLI。

cat ~/.codex/config.toml

确认 Codex 配置正确。

重点确认以下内容:

requires_openai_auth = false
env_key = "APIKEY_QUEST_API_KEY"

[features]
remote_connections = true

总结

整体配置逻辑可以理解为:

  1. 本地 Windows 负责发起连接。
  2. 远程 Linux 服务器负责运行 Codex CLI。
  3. API Key 必须配置在远程服务器上。
  4. Codex CLI 通过 env_key 从远程服务器环境变量中读取 Key。
  5. 因为远程调用不一定加载 .bashrc,所以建议把 Key 写入 /etc/environment
  6. config.toml[features] 只写一次,remote_connections = true 不要加引号。

这样配置完成后,就可以通过本地 Windows Codex 连接远程服务器上的 Codex CLI,并使用自定义模型接口。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐