身份验证

基于用量计费的替代方式:使用 OpenAI API key

如果你更喜欢按量付费,你仍然可以使用 OpenAI API key 进行身份验证:

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

这个 key 至少需要对 Responses API 拥有写权限。

从 API key 迁移到 ChatGPT 登录

如果你之前使用 Codex CLI 结合 API key 按量计费,现在想切换为使用 ChatGPT 套餐,请按照以下步骤操作:

  1. 更新 CLI 并确认 codex --version0.20.0 或更高版本
  2. 删除 ~/.codex/auth.json(Windows 下路径为 C:\\Users\\USERNAME\\.codex\\auth.json
  3. 再次运行 codex login

在 “无头” 机器上连接

目前,登录过程会在 localhost:1455 启动一个服务。如果你在 “无头” 服务器上,比如 Docker 容器,或者通过 ssh 连接到远程机器,那么在本地浏览器中打开 localhost:1455 并不会自动连接到远程机器上的服务,你需要使用以下解决方案之一:

在本地认证并复制凭据到 “无头” 机器

最简单的方式是先在本地机器运行 codex login,这样 localhost:1455 在你的浏览器中是可访问的。完成认证后,会在 $CODEX_HOME/auth.json 生成一个 auth.json 文件(在 Mac/Linux 上,$CODEX_HOME 默认为 ~/.codex,在 Windows 上默认为 %USERPROFILE%\\.codex)。

因为 auth.json 文件并不绑定到特定主机,所以你可以在本地完成认证后,把 $CODEX_HOME/auth.json 文件复制到无头机器上,之后 codex 就能在那台机器上正常使用了。比如复制文件到 Docker 容器,可以这样操作:

  1. # 用你的 Docker 容器的名称或 ID 替换 MY_CONTAINER
  2. CONTAINER_HOME=$(docker exec MY_CONTAINER printenv HOME)
  3. docker exec MY_CONTAINER mkdir -p "$CONTAINER_HOME/.codex"
  4. docker cp auth.json MY_CONTAINER:"$CONTAINER_HOME/.codex/auth.json"

如果你是通过 ssh 连接远程机器,更常见的方式是使用 scp

  1. ssh user@remote 'mkdir -p ~/.codex'
  2. scp ~/.codex/auth.json user@remote:~/.codex/auth.json

或者使用这个单行命令:

  1. ssh user@remote 'mkdir -p ~/.codex && cat > ~/.codex/auth.json' < ~/.codex/auth.json

通过 VPS 或远程机器连接

如果你在没有本地浏览器的远程机器(VPS/服务器)上运行 Codex,登录助手会在远程主机的 localhost:1455 启动一个服务。要在本地浏览器中完成登录,需要在启动登录流程前把该端口转发到你的本地机器:

  1. # 在本地机器执行
  2. ssh -L 1455:localhost:1455 <user>@<remote-host>

然后,在该 SSH 会话中运行 codex 并选择 “Sign in with ChatGPT”。当命令行提示你打开一个 URL(如 http://localhost:1455/...)时,在本地浏览器中打开它。流量会通过隧道转发到远程服务器。