Codex 登录配置怎么填:ChatGPT 授权、API 密钥与 CI

Codex CLI 可通过 ChatGPT 账号授权或 OpenAI API 密钥登录;前者适合本机使用,后者适合无浏览器环境。

以 2025 年 8 月 31 日发布的鉴权说明为版本线索:Codex CLI 0.30.0 以上已覆盖常见的浏览器授权、API 密钥登录和无头服务器处理方式。现在值得按这条路径重新配置,是因为 Codex 后续安装仍可使用 ChatGPT 账号,而服务器、CI 与多账号环境不能只依赖浏览器回调;提前分清两条鉴权路径,能避免把密钥填错位置。

本文以下步骤依据 OpenAI Codex 官方仓库 README,无头服务器部分同时参考 Codex authentication 文档镜像,中文操作细节参考 编程狮的浏览器授权与 API 令牌说明。

登录前先检查这 5 项

Codex CLI 是运行在终端里的编程代理。开始登录前,先确认终端、网络和身份来源都已准备好,否则后面即使出现登录成功,也可能无法调用模型。

  1. 安装客户端:macOS 或 Linux 执行 curl -fsSL https://chatgpt.com/codex/install.sh | sh;Windows PowerShell 执行 powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"。官方仓库还提供 npm 与 Homebrew 安装方式。
  2. 确认命令存在:运行 codex --version。没有输出版本号时,先处理 PATH,不要继续排查登录。
  3. 准备身份:本机使用准备 ChatGPT 账号;CI 或服务器准备有效的 OpenAI API 密钥。
  4. 确认网络:本机授权需要浏览器访问登录页面;无头服务器还需要能把认证信息传进去。
  5. 明确计费路径:ChatGPT 登录使用对应 ChatGPT 套餐权益;API 密钥登录走 OpenAI API 账户的用量计费。两套账号不要混填。

优先选择哪条路径,可按下面的实际使用条件决定:

使用场景 登录方式 浏览器 凭证保存位置 适合谁
日常本机使用 ChatGPT 授权 需要 Codex 凭据目录 只有一个交互终端的人
无图形界面服务器 API 密钥 不需要 环境变量或凭据文件 远程 SSH、Docker 用户
CI 自动任务 API 密钥 不需要 CI Secret 自动化流水线维护者
多账号并行 独立终端加独立密钥 可选 分别注入环境 需要隔离额度和权限的人

这张表的实际分界不是“哪个方法更高级”,而是环境里有没有浏览器,以及凭证能否被安全地注入进程。

本机登录:优先走 ChatGPT 授权

本机有浏览器和可交互终端时,先走 ChatGPT 授权。这条路径不需要手动复制密钥,也不容易把密钥贴到聊天记录或终端历史中。

  1. 在终端进入项目目录,运行:
codex login
  1. Codex 会显示登录流程,并尝试打开默认浏览器。进入官方登录页面后,使用准备好的 ChatGPT 账号完成授权。
  2. 浏览器授权完成后回到终端,检查登录状态:
codex login status
  1. 如果系统没有自动打开浏览器,可以先单独执行安装命令,再运行 codex login;终端给出的本地回调地址需要由同一台机器上的浏览器打开。
  2. 登录成功后,在项目目录启动一次 Codex:
codex

成功标志不是只看到登录网页,而是终端确认账号已经接入,并且 Codex 能进入交互界面。依据官方仓库说明,运行 codex 后选择 Sign in with ChatGPT,即可使用 Plus、Pro、Business、Edu 或 Enterprise 套餐中包含的 Codex 能力。

如果日常使用 Codex Web,而不是终端客户端,则直接访问 https://chatgpt.com/codex。这条路径和本地 CLI 的登录状态不是一回事:网页能打开,不代表终端已经拿到凭证。

API 密钥登录:把密钥放到正确的进程里

API 密钥适合无头服务器、CI 和需要明确隔离账号的终端。CLI 提供的直接登录方式是:

codex login --api-key "your-api-key-here"

这里的 your-api-key-here 只是占位符,不能原样执行。先在 OpenAI API 控制台创建密钥,再用实际密钥替换;密钥只展示时,应立即复制到密码管理器或 CI Secret,不要保存到仓库中的 .env、截图或提交记录。

如果不想把密钥直接作为命令参数暴露在 shell 历史中,更适合用环境变量。以 macOS、Linux 为例:

export OPENAI_API_KEY='这里替换为实际密钥'
codex login --api-key "$OPENAI_API_KEY"

Windows PowerShell 使用:

$env:OPENAI_API_KEY = "这里替换为实际密钥"
codex login --api-key $env:OPENAI_API_KEY

执行后运行:

codex login status

应能看到已使用 API 密钥登录,而不是 ChatGPT 账号登录。这里的 OPENAI_API_KEY 是进程读取密钥的环境变量;设置后,变量只对当前终端及其子进程生效,关闭终端通常就会失效。

API 密钥不是“填进配置文件”就结束。CLI 需要先通过登录命令接收它,再由客户端保存或读取对应凭据。若之前使用 ChatGPT 登录,后来改用 API 密钥,先执行 codex login status 确认当前身份;需要切换时,运行新的 codex login --api-key ...,不要手动改写来源不明的 auth.json。

无头服务器与 CI:别把浏览器回调当远程登录

无头机器运行 Codex 时,浏览器授权涉及本机回环地址 localhost:1455。如果 Codex 跑在 Docker 容器或远程 SSH 服务器中,直接在自己电脑浏览器里打开远程机器的 localhost:1455,访问的仍是自己的电脑,而不是远程服务器,授权无法正确返回。

无头环境可采用以下两种操作:

  1. 在本地完成登录后迁移凭据:先在本地运行 codex login,确认 codex login status 显示已登录,再按 Codex 鉴权文档的 headless 章节把凭据复制到目标机器。复制后检查文件所有权和读取权限,不应让其他系统用户读取。
  2. 直接注入 API 密钥:在服务器或 CI 中设置 OPENAI_API_KEY,再运行:
codex login --api-key "$OPENAI_API_KEY"
codex login status

CI 中应把密钥保存为运行器的 Secret,例如 OPENAI_API_KEY,由流水线在执行 Codex 前注入:

permissions:
  contents: read

steps:
  - uses: actions/checkout@v4
  - name: Run Codex
    env:
      OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
    run: codex

密钥会作为环境变量进入步骤,而不是写进 YAML 正文。需要注意,仓库里使用的是 actions/checkout@v4 这一示例版本;团队应按组织政策固定并审查第三方 Actions 的版本。

常见卡点:报错信息对应哪一步

提示 codex: command not found 或类似“找不到命令”

这说明客户端尚未安装,或 npm 全局可执行目录不在 PATH。先运行:

codex --version
npm prefix -g

若 npm 安装后找不到命令,将 npm prefix -g 对应的 bin 目录加入 PATH,再重新打开终端。不要在尚未安装客户端时反复执行登录命令。

浏览器能打开登录页,但回到终端后授权失败

检查打开的是当前 Codex 进程显示的回调地址,并确认浏览器与 Codex 位于同一台机器。远程 SSH、容器和端口转发环境不要照搬本机流程,改用 API 密钥,或按 headless 文档迁移凭据。

登录状态正常,但请求仍被拒绝

依次检查三项:API 密钥是否完整;账户是否有可用额度或相应 ChatGPT 套餐权益;当前登录方式是否与预期一致。执行 codex login status,不要只看浏览器是否登录过 ChatGPT。

输出中突然出现 401 或 403

401 通常指向凭证无效或已失效,403 则还要检查账户权限与使用限制。若使用 API 密钥,确认它来自正确的 OpenAI API 账户,而不是 ChatGPT 网页会话中的其他令牌。修正后重新执行 codex login --api-key "$OPENAI_API_KEY",再运行 codex login status。

更换账号后仍调用旧账号

CLI 会保留已有登录状态。仅退出旧账号或打开另一个浏览器标签不够,应先查看 codex login status,再执行对应登录命令。多账号并行时,为每个终端分别设置独立的 OPENAI_API_KEY,避免相互覆盖。

确认成功,再开始第一次调用

完整验证链只有三步:

codex --version
codex login status
codex

第一条应输出本机 Codex 版本号;第二条应显示当前使用 ChatGPT 账号还是 API 密钥;第三条应进入 Codex 交互界面。三项同时成立,才算本地鉴权完成。

如果只是运行一条普通任务,可以把 Codex 指向一个专门测试目录,再输入“读取当前目录文件列表,不要修改文件”。成功标志是返回目录内容且没有鉴权错误。先用只读请求验证,比一上来就让代理修改代码更容易区分“登录成功”和“模型调用失败”。

后续可继续查看 OpenAI Codex 官方仓库 的安装说明与更新记录。若需要在无头机器上迁移认证信息,再对照 Codex authentication 文档的 headless 章节;中文用户也可参考 编程狮的 Codex CLI 登录实操 对照浏览器授权、令牌登录和多账号隔离的适用场景。

评论区

0 条评论

登录后可评论。

小猫跳舞 11 阅读