◂ 主题中心 官方文档核对 · 2026-07-18 结构审计至 2026-09-10;事实以页面来源日期为准
🚑 登录报错 · 配置打架 · 换机翻车 —— 一页治好

环境与登录
急救手册

"我明明是会员,为什么让我付 API 费?""换台电脑就跑不通""这台机器别人配过,我一登全乱了"——这些不是玄学,全部能定位到五层中的某一层。本手册给你一套系统性检查方法、双工具症状急救表、三大场景剧本,以及一套分级的万能修复方案。

五层诊断法一键体检脚本三级重置方案Claude Code × Codex 对照
5 层二进制 → 环境变量 → 凭证 → 配置 → 网络,任何症状都落在某层
1 个脚本只读体检,30 秒看清一台机器的全部环境状态
3 级重置软重置 → 凭证重置 → 核弹重置,逐级升级不误伤
3 个剧本共用电脑 / 换电脑 / 无头机,按场景直接抄作业
方法论 00

对症快查 + 问题地图

⚡ 三句话救命(先试这个,70% 的问题到此为止) ① env | cut -d= -f1 | grep -iE 'anthropic|openai' 揪出劫持环境变量,逐个 unset; ② 干净重登:/logout 后重新 /login(Codex:codex logout && codex login); ③ 验证身份:/status / codex login status,确认账号和登录方式是你预期的。没救回来,往下对症查。

对症快查:30 秒定位你的问题

你遇到的是…直达
登录不上 / 反复要求登录 / Invalid API keyClaude Code 急救表 · Codex 急救表
我是会员,却被按 API 计费 / 提示组织已停用凭证优先级(看懂根因)→ 急救表 · 计费与额度
提示 usage limit / 429 / 529急救表 · 计费与额度(CC / Codex)——这不是登录问题,别瞎重装
这台电脑别人用过/配置过,我一用就乱剧本 A · 共用电脑
换了台新电脑,想把环境原样带过去剧本 B · 换电脑 / 多机漫游
SSH / 容器 / CI 没有浏览器,怎么登录剧本 C · 无头环境
改了配置不生效 / 公司电脑配置锁死急救表 · 配置类(CC / Codex)
公司代理 / 内网:TLS 报错、下载失败急救表 · 网络与代理(CC / Codex)
命令找不到 / 版本诡异 / 更新没反应急救表 · 安装与版本(CC / Codex)
说不清哪坏了,想系统性查一遍01 · 五层诊断法 + 体检脚本
想看完整的排查过程长什么样11 · 案例复盘——四个真实案例从症状走到根因
全试过了,想安全地推倒重来12 · 万能修复:三级重置

问题地图:所有环境问题只有四类根源

Claude Code 与 Codex 的"环境问题"看似五花八门,拆开只有四类根源。认清根源,后面所有章节都是在这张地图上定位、修复。

根源典型表现为什么会发生
① 多个安装并存版本忽新忽旧、更新了没变化、命令行为诡异native 安装器、npm 全局、Homebrew/WinGet、IDE 扩展自带副本——四种渠道可以同时存在,PATH 里谁靠前谁说了算
② 凭证多源打架"明明登录了却报 Invalid API key"、会员却走 API 计费、organization disabled环境变量里的 key 优先级高于你浏览器登录的订阅凭证——一条别人留下的 export ANTHROPIC_API_KEY 就能劫持你的整个会话
③ 配置层叠覆盖"改了不生效"、公司电脑某些设置锁死企业管控 > 命令行参数 > 项目本地 > 项目 > 用户层——你改的层可能被更高层悄悄覆盖
④ 网络与系统环境登录卡住、TLS 报错、OAuth 回调失败、下载 403公司代理/私有 CA/防火墙拦截回调端口;系统时钟不准还会让 token 校验失败
一句话心法遇到任何环境问题,不要上来就重装。先用下一章的五层诊断法定位问题在哪一层——90% 的"疑难杂症"是第②类(凭证打架),清一个环境变量就好,重装反而引入第①类问题。

两个工具,同一套心智模型

好消息:两个工具的环境体系高度同构,学一遍方法论,两边通用。

Claude CodeCodex
老家目录~/.claude(可用 CLAUDE_CONFIG_DIR 搬家)~/.codex(可用 CODEX_HOME 搬家)
订阅登录/login → 浏览器 OAuth(claude.ai 账号)codex login → 浏览器 OAuth(ChatGPT 账号,回调 localhost:1455)
凭证存放macOS 钥匙串;Linux/Win 为 .credentials.jsonauth.json(明文)或系统钥匙串(可配)
体检命令claude doctor / 会话内 /status /doctor会话内 /status /debug-config;登录日志 codex-login.log

完整对照表见第 13 章。本页所有结论均核对官方文档 2026-07 版,来源见各节脚注。

diagnose

五层诊断:先确认来源,再做最小修改

从错误证据选择层级,不必机械执行全部步骤。多个安装路径、代理或凭据变量并不自动代表异常;先确认当前入口实际使用了什么。以下检查不读取密钥文件、不打印环境变量值。

层级确认对象安全检查
程序当前 PATH 与安装版本which -a codex / which -a claude;多路径时确认实际首选与安装渠道。
环境变量是否存在及来源只列变量名,区分 shell 与桌面启动环境;不要批量删除。
认证所选 provider / 当前身份codex login status / claude auth status;只在本机查看必要账号信息。
配置加载层、合法性和适用范围Claude 用 /status 的 Setting sources 与 doctor;Codex 对照配置层和启动警告,不依赖未确认的 /debug-config。
网络错误由登录、网关、API 还是工具服务返回检查实际目标、TLS、代理、超时及响应;单个下载域名连通不证明模型端点可用。
# macOS / Linux / WSL:只读检查,输出环境变量名,不输出值
for tool in codex claude; do
  if command -v "$tool" >/dev/null 2>&1; then
    command -v "$tool"
    "$tool" --version
  fi
done
env | cut -d= -f1 | sort | grep -iE 'anthropic|claude|codex|openai|proxy|ca_bundle|node_extra_ca' || true
# 只列可能的配置位置,不读取内容
for file in "$HOME/.codex/config.toml" "$HOME/.claude/settings.json"             ".codex/config.toml" ".claude/settings.json" ".claude/settings.local.json"; do
  [ ! -f "$file" ] || printf '%s\n' "$file"
done

PowerShell 可用 Get-Command codex,claude -All 查入口;仅列变量名:Get-ChildItem Env: | Where-Object Name -match 'ANTHROPIC|CLAUDE|CODEX|OPENAI|PROXY' | Select-Object -ExpandProperty Name。不要把不带最后 Select-Object 的完整值输出发到工单。

依据:Codex 配置层 · Claude 设置排错

claude-cred

Claude Code · 认证与凭据入口

核对至 2026-10-20。认证包括 claude.ai 订阅/团队、Claude Console(有条件支持无 Key 登录)、API 凭据、云提供商、企业网关和 profile/工作负载身份。凭据选择取决于运行模式和组织要求,不能把旧版固定优先级视为全部场景通用。

CLI/包装 CLI 的环境变量和 apiKeyHelper 不能直接套用到桌面或云端。macOS Keychain、受限文件回退、Linux/Windows 存储按当前认证文档核实。

配置与认证完整说明 →

依据:官方认证

claude-config

Claude Code · 设置文件与字段入口

设置文件优先级为托管 → CLI --settings → 项目 local → 共享项目 → 用户;环境变量按字段决定优先级,数组还有特例。settings.json 是严格 JSON,不能写注释或尾逗号。

本站设置与登录指南 → · 官方全部设置(作用域、默认和示例)→

auto/bypassPermissions 等模式不能从项目/local 文件启用;多数设置可热重载,但模型、思考档等需按对应入口切换。

依据:设置文件

claude-er

Claude Code · 分层排错入口

先用 claude --version、claude --help、claude auth status 与只读 claude doctor 查版本和配置错误;会话内 /status 查 Setting sources、/permissions 查规则来源。不要把修改 base URL 误当作切换计费或凭据。

常见问题 → · 本机核对 →

codex-cred

Codex · 认证与凭据入口

核对至 2026-10-20。官方个人认证主要有 ChatGPT 登录与 API Key;设备码是登录流程,不能当成第三种独立计费身份。自定义网关可有环境 Bearer、自定义头、命令 Token,ChatGPT 经网关则需要双凭据;Bedrock 和企业自动化另有路径。

先用 codex login status 确认官方登录状态,再检查实际选择的 provider。模型登录凭据、MCP OAuth、网关凭据分别管理;不存在一条脱离提供商与运行模式的万能优先级表。

完整认证矩阵、存储与互斥说明 →

依据:官方认证

codex-config

Codex · config.toml 配置专题

配置详解已并入 Codex 指南,按 7 个专题组织。内容覆盖 306 条公开配置路径、103 个 Schema 顶层键和 996 条结构路径,重点解释 provider、认证、URL、必需项、互斥与迁移。

进入 config.toml 全面解析 →

关键纠正:项目层先于独立 profile;项目层不能改提供商;≥0.134.0 profile 改独立文件;wire_api 只支持 responses;name 只是显示名。

依据:配置基础 · 高级配置

codex-er

Codex · 分层排错入口

先记录版本、启动入口、错误来源和所选 provider。401/403 查凭据及服务权限,404/405 查路由,400/422 查模型与协议,流中断查 SSE/WebSocket 和代理。不要先删 auth.json 或开启全访问。

症状排错表 → · 本机命令核对 →

场景剧本 08

剧本 A · 共用电脑 / 接手"别人配置过"的电脑

最高频的翻车现场:你是 Claude 会员,坐到一台别人用过的电脑前,一顿操作后各种报错。根因几乎总是同一个:上一位使用者的凭证与环境变量还活着,而它们的优先级比你的登录高。

上机三查(动手配置之前先做)

  1. 查环境变量与 rc 残留:跑第 01 章体检脚本,重点看 L2 输出——别人 rc 文件里的 export ANTHROPIC_API_KEY / ANTHROPIC_BASE_URL(中转站配置)/ OPENAI_API_KEY 就是定时炸弹。
  2. 查凭证归属:claude 进会话 /status 看登录的是谁的账号;codex login status 同理。是别人的就先 /logout / codex logout。
  3. 查全局配置污染:~/.claude/CLAUDE.md、~/.claude/settings.json、~/.codex/config.toml、~/.codex/AGENTS.md 里是不是别人的偏好与指令——这些会直接影响你的每次对话行为。

按共用程度选方案

场景推荐方案做法
临时借用一两次不动别人任何东西只在当前终端会话清变量(unset ANTHROPIC_API_KEY 等,不改 rc 文件),用完 /logout 登出自己账号即走
长期共用一台机器各开各的系统账号(最正规)macOS/Windows 各建用户:home 目录天然隔离,~/.claude、钥匙串、~/.codex 互不可见,零冲突零泄密
必须同一系统账号切换配置目录隔离 + 别名见下方——两个工具都支持"整个老家搬走"

同一系统账号跑多套配置(隔离方案)

# ~/.zshrc —— 每人/每个账号一个独立配置目录 + 专属命令
# Claude Code:CLAUDE_CONFIG_DIR 决定"老家"在哪
alias claude-me='CLAUDE_CONFIG_DIR="$HOME/.claude-me" claude'
alias claude-work='CLAUDE_CONFIG_DIR="$HOME/.claude-work" claude'
# Codex:CODEX_HOME 同理
alias codex-me='CODEX_HOME="$HOME/.codex-me" codex'
alias codex-work='CODEX_HOME="$HOME/.codex-work" codex'
  • 每个目录首次使用时各自走一遍登录,凭证、历史、配置完全隔离,从此不用反复登出登入;
  • 防串门技巧:不同账号会话里用 /color 换界面主题色,一眼看出"我现在是谁"(社区 madewithlove 方案);
  • 注意 Claude Code 还有一个全局状态文件 ~/.claude.json(MCP 等),设了 CLAUDE_CONFIG_DIR 后随目录走——别再手动去动默认位置的那份。
离开前清单(共用电脑礼仪)① /logout 与 codex logout 登出自己;② 撤销自己临时 export 的变量;③ 不要把自己的 API key 写进共用机的 rc 文件;④ 敏感项目会话记得清理(~/.claude/projects/ 转录是明文)。

参考:Running multiple Claude accounts without logging out(madewithlove) · Two Claude accounts on one Windows PC(Josh Grossman) · codex-multi-auth(社区工具)

场景剧本 09

剧本 B · 换电脑 / 多机漫游

核心原则一句话:配置随身走,凭证每机新登,历史留在原地。想清楚"什么带走、什么不带",换机就是十分钟的事。

带什么、不带什么(双工具对照)

资产Claude CodeCodex怎么处理
核心配置settings.json、全局 CLAUDE.md、skills/、agents/config.toml、profiles、全局 AGENTS.md✅ 进 dotfiles 仓库,新机 clone 即得
项目配置.claude/、.mcp.json、项目 CLAUDE.md.codex/、仓库 AGENTS.md✅ 本来就在项目 git 里
凭证钥匙串 / .credentials.jsonauth.json / 钥匙串❌ 不拷贝:新机重新登录一次(30 秒),干净又安全
会话历史projects/、history.jsonl(明文!)会话数据目录❌ 本地资产不迁移;跨机续会话用 Claude 的 --teleport/云端会话、Codex 的云任务
缓存/插件plugins/、shell-snapshots/ 等日志目录➖ 不备份,新机自动重建

新机十分钟标准流程

# 1. 安装(官方 native 渠道,别混用 npm)
curl -fsSL https://claude.ai/install.sh | bash        # Claude Code
npm install -g @openai/codex                          # Codex(或 brew install codex)

# 2. 恢复配置(dotfiles 方案)
git clone git@github.com:你/dotfiles.git ~/dotfiles
ln -s ~/dotfiles/claude ~/.claude                     # 或 export CLAUDE_CONFIG_DIR=~/dotfiles/claude
ln -s ~/dotfiles/codex ~/.codex                       # 或 export CODEX_HOME=~/dotfiles/codex

# 3. 各登录一次(凭证绝不拷贝)
claude          # 浏览器 OAuth → /status 验证账号与 Login method
codex login     # 浏览器 OAuth → codex login status 验证

# 4. 体检收尾
claude doctor && bash ai-env-check.sh
两台机器"配置漂移"的根治法官方暂无内置多机同步(上游 issue #36693 在讨论)。现阶段正解:把所有手写配置收进 dotfiles 仓库,机器上只留符号链接——改了就 commit,另一台 pull 即同步;或干脆 CLAUDE_CONFIG_DIR/CODEX_HOME 指向同步盘目录(注意:同步盘方案别把凭证与 projects/ 也同步进去,用 .gitignore/忽略规则排除)。

参考:官方 ~/.claude 目录详解 · anthropics/claude-code#36693(多机同步討論)

场景剧本 10

剧本 C · SSH / 容器 / 无头机 / CI

没有浏览器的环境,登录是另一套打法。两个工具的官方推荐路径不同,别互相套用。

Claude Code:三条路径

  1. SSH/WSL2/容器交互使用:正常跑 claude,把终端里的 OAuth URL 复制到本地浏览器完成登录,浏览器给出的 code 粘回终端(粘贴失灵就用 claude auth login 从 stdin 读)。
  2. CI / 脚本(订阅额度):在本地跑 claude setup-token 生成一年期 OAuth token,存进 CI Secret,运行环境设 CLAUDE_CODE_OAUTH_TOKEN。注意 --bare 模式不读它,bare 场景改用 ANTHROPIC_API_KEY 或 apiKeyHelper。
  3. CI(API 计费):直接 ANTHROPIC_API_KEY 环境变量——最简单,但走按量计费。

Codex:官方三方案按优先级

  1. 设备码(首选):codex login --device-auth,本地任意浏览器输一次性码。工作区可能需要管理员先启用设备码权限。
  2. 拷贝 auth.json(官方兜底):有浏览器的机器登录后把 ~/.codex/auth.json 安全复制到目标机(scp / docker cp)。若本机凭证在钥匙串而非文件,先把 cli_auth_credentials_store 设为 file 重登一次。
  3. SSH 端口转发:ssh -L 1455:localhost:1455 user@remote 后在远端 codex login,本地浏览器走标准流程。

Codex CI 长期认证(官方 auth.json 续期循环)

ChatGPT 订阅额度跑 CI 的官方姿势——利用 Codex 运行时自动刷新 token 并回写 auth.json 的机制:

  1. 可信机器上 codex login(file 存储),把生成的 auth.json 存入 CI 的 Secret 管理;
  2. 每次任务:恢复 auth.json → 跑 Codex(token 约 8 天不刷会失效,运行中自动续期)→ 回写刷新后的 auth.json 到 Secret;
  3. 红线:不要多个并发任务共享同一份 auth.json;不要每次都用最初的旧文件覆盖新文件;刷新链断了就回可信机器重新登录播种。自托管 runner 直接给个持久 CODEX_HOME 更省事。
容器 / DevContainer 持久化登录把"老家目录"做成挂载卷,容器重建不用重登:Claude Code 挂 CLAUDE_CONFIG_DIR 指向的卷(Linux 凭证就在其中的 .credentials.json);Codex 挂 CODEX_HOME 卷。红线:凭证只进卷,永远不要烤进镜像层。

公司网络(代理 / 私有 CA)速查

Claude CodeCodex
HTTP 代理HTTPS_PROXY / HTTP_PROXY同左,并确保 NO_PROXY 包含 localhost(OAuth 回调)
私有 CANODE_EXTRA_CA_CERTS=/path/ca.pemCODEX_CA_CERTIFICATE=/path/ca.pem
登录方式被锁forceLoginMethod(管控)forced_login_method(管控)

来源:官方 Authentication(setup-token) · 官方 Codex CI/CD auth(2026-07 版)

实战复盘 11

案例复盘:从症状到根因

四个高频真实场景,把五层诊断法从头到尾走一遍。看懂这四个,大多数"玄学问题"你都能自己破案——注意每个案例里报错文本和真正根因隔了多远。

案例一 · "我是 Max 会员,却提示组织已停用"

现场接手同事的旧电脑,装好 Claude Code、订阅账号登录成功,一提问就报 API Error: 400 "This organization has been disabled"。重装了两次,毫无变化。
排查L1 正常(单一安装、版本最新);L2 命中——env | cut -d= -f1 | grep -i anthropic 揪出一条 ANTHROPIC_API_KEY=sk-ant-…,顺藤摸瓜发现它写在 ~/.zshrc 里,是前任使用者留下的,key 所属的 Console 组织早已注销。
修复unset 变量 + 删掉 rc 文件里的 export 行 → 重开终端 → /status 确认 Login method 回到订阅。全程 3 分钟,一次重装都不需要。
教训报错说"组织",你想的是"订阅",真正坏的是"环境变量"——报错文本描述的是结果,不是根因。这也是为什么重装(动 L1)对 L2 的病永远无效。

案例二 · "VS Code 扩展一直 Invalid API key,终端却好好的"

现场终端里 claude 一切正常;VS Code 扩展却反复弹 Invalid API key · Please run /login,登录成功后还是黑屏。社区大量同款(anthropics/claude-code#12204 记录的经典形态)。
排查L3 凭证层命中,但根子在 L2:机器上同时存在三种凭证——OAuth 登录、手动设置的 API key、shell 里的环境变量。终端从 rc 文件读到的环境和 VS Code 图形启动继承的环境不一样,两边各自选了不同的凭证,一边有效一边无效。
修复只留一种凭证源:清掉全部 ANTHROPIC_* 变量与手动 key → CLI 与扩展各自干净重登 → 两边 /status 都显示同一订阅账号。
教训"终端好、IDE 坏"几乎必然是两个进程看到的环境不一致。多凭证并存时,谁也说不准哪个进程吃到哪个——凭证源永远只留一个。

案例三 · "一觉醒来,所有并行会话集体要求重新登录"

现场头天晚上开着三个并行 Claude Code 会话合盖睡觉,早上唤醒后三个会话同时弹登录,重登一个另两个又掉——像闹鬼。
排查L2/L3 都干净,反直觉地落在 L1 版本层:查官方 changelog,v2.1.211 之前存在已知缺陷——机器从睡眠唤醒时,多个会话用同一个 token 并发续期,互相把对方的登录作废。
修复升级到 ≥ v2.1.211(续期改为单进程协调),重登一次,此后再未复发。
教训集体性、时间点诡异的现象,先查版本与 changelog,而不是折腾自己的配置——官方已修的 bug,你在本地怎么排查都排不出根因。

案例四 · "Codex 在 CI 里稳定跑了一周,突然全线 401"

现场用 ChatGPT 订阅额度跑 CI:把本机 auth.json 存进 Secret,每次任务恢复后运行。一周后所有流水线开始 401,本机重新导出一份,又能撑几天,循环往复。
排查L3 凭证层命中:Codex 的 token 约 8 天不刷新就 stale。运行中它其实自动续期并回写了 auth.json——但流水线每次都用 Secret 里那份"出厂旧档"覆盖,续期成果全被丢弃,刷新链一断就全线失效。
修复按官方 CI 方案补上闭环:恢复 → 运行 → 把刷新后的 auth.json 写回 Secret;并发任务不共享同一份凭证。自托管 runner 则直接给持久 CODEX_HOME 一劳永逸。
教训凭证是活的,不是配置常量。任何"每隔 N 天准时坏一次"的问题,先怀疑某个会过期的东西没有续命通道。

案例依据:官方 troubleshoot-install / authentication 文档、anthropics/claude-code#12204、Codex CI/CD auth 官方指南(2026-07 核对);机器与人物细节做了场景化改写,排查路径与根因均为真实机制。

可恢复的排查与重置

先保存错误、版本、实际生效配置和脱敏日志。只在证据指向凭据问题时重新登录,只在确认变量来源与用途后调整环境。不要把清空全部配置目录当作通用修复;原流程的选择性备份不能恢复被删除的全部会话、技能和状态。

需要隔离配置时,先确认实际配置目录(包括自定义目录),完整复制到有时间戳的独立位置并检查可读取;保留原目录,再一次只禁用或调整一个已确认有问题的文件。验证失败就恢复该项。重置后仍失败并不能证明问题一定在服务端。

终极方案 13

双工具概念对照 + 资源索引

一张表打通两个工具

概念Claude CodeCodex
老家目录 / 搬家变量~/.claude / CLAUDE_CONFIG_DIR~/.codex / CODEX_HOME
用户配置文件settings.json(JSON)config.toml(TOML)
全局记忆/指令~/.claude/CLAUDE.md~/.codex/AGENTS.md
凭证存储macOS 钥匙串 / .credentials.jsonauth.json / 钥匙串(cli_auth_credentials_store)
看当前凭证/状态/statuscodex login status、/status
配置体检claude doctor、/doctor、--safe-mode/debug-config、codex-login.log
环境变量劫持源ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKENOPENAI_API_KEY(API 计费模式)
CI 长期认证claude setup-token → CLAUDE_CODE_OAUTH_TOKEN(一年)auth.json 恢复→运行→回写循环;或 API Key
无浏览器登录复制 URL 本地登录 + 粘 code / claude auth login--device-auth / SSH 转发 1455
私有 CANODE_EXTRA_CA_CERTSCODEX_CA_CERTIFICATE
企业强制策略forceLoginMethod / forceLoginOrgUUIDforced_login_method / forced_chatgpt_workspace_id
多账号隔离CLAUDE_CONFIG_DIR + aliasCODEX_HOME + alias(官方一等支持讨论中)

资源索引(按可信度排序)

资源说明
Claude Code · Troubleshoot installation and login官方安装与登录排障总页——"错误信息 → 修复"对照表最全的一处,先查它
Claude Code · Authentication官方认证机制全解,凭证优先级顺序的唯一权威出处
Claude Code · Settings · ~/.claude 目录详解配置层叠与目录内容的官方口径
Codex · Authentication(→ learn.chatgpt.com)Codex 官方认证文档:登录方式、凭证存储、无头方案
Codex · CI/CD auth官方 CI 长期认证方案(auth.json 续期循环)
Claude 帮助中心 · 安装与认证排障官方支持视角的补充,含求助渠道
madewithlove · 多账号不登出方案 · Josh Grossman · Windows 双账号社区实战:CLAUDE_CONFIG_DIR 隔离方案的两篇代表作
ClaudeLog Troubleshooting · codex-multi-auth社区排障速查与 Codex 多账号管理工具
本知识库关联章节Claude Code 指南 · 配置与账号全解 · Codex 指南 · 配置与账号全解——配置层叠、MCP 位置、环境变量全表在那边