Skip to content

身份驗證

基於使用情況的計費替代方案:使用 OpenAI API 密鑰

如果您更喜歡按使用量付費,您仍然可以使用 OpenAI API 密鑰進行身份驗證:

shell
printenv OPENAI_API_KEY | codex login --with-api-key

或者,從文件中讀取:

shell
codex login --with-api-key < my_key.txt

舊的 --api-key 標誌現在會退出並顯示錯誤,指示您使用 --with-api-key,以便該密鑰永遠不會出現在 shell 歷史記錄或進程列表中。

此密鑰必須至少具有 Responses API 的寫入權限。

從 API 密鑰遷移到 ChatGPT 登入

如果您之前使用 Codex CLI,通過 API 密鑰進行基於使用情況的計費,並想切換到使用您的 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 不會自動連接到在_無頭_機器上運行的 Web 服務器,因此您必須使用以下解決方法之一:

在本地進行身份驗證並將您的憑證複製到"無頭"機器

最簡單的解決方案可能是在您的本地機器上運行 codex login 過程,使得 localhost:1455 _可以_在您的 Web 瀏覽器中訪問。完成身份驗證過程後,應該在 $CODEX_HOME/auth.json 處有一個 auth.json 文件(在 Mac/Linux 上,$CODEX_HOME 預設為 ~/.codex,而在 Windows 上,它預設為 %USERPROFILE%\\.codex)。

因為 auth.json 文件不與特定的主機綁定,一旦您在本地完成身份驗證流程,您可以將 $CODEX_HOME/auth.json 文件複製到無頭機器,然後 codex 應該在該機器上"正常工作"。注意要將文件複製到 Docker 容器,您可以執行:

shell
# 用您的 Docker 容器的名稱或 ID 替換 MY_CONTAINER:
CONTAINER_HOME=$(docker exec MY_CONTAINER printenv HOME)
docker exec MY_CONTAINER mkdir -p "$CONTAINER_HOME/.codex"
docker cp auth.json MY_CONTAINER:"$CONTAINER_HOME/.codex/auth.json"

而如果您通過 ssh 連接到遠程機器,您可能想要使用 scp

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

或嘗試這個單行命令:

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

通過 VPS 或遠程連接

如果您在沒有本地瀏覽器的遠程機器(VPS/服務器)上運行 Codex,登入助手會在遠程主機上的 localhost:1455 上啟動服務器。要在您的本地瀏覽器中完成登入,請在啟動登入流程之前將該端口轉發到您的機器:

bash
# 從您的本地機器
ssh -L 1455:localhost:1455 <user>@<remote-host>

然後,在該 SSH 會話中,運行 codex 並選擇"使用 ChatGPT 登入"。出現提示時,在您的本地瀏覽器中打開打印的 URL(將是 http://localhost:1455/...)。流量將被隧道化到遠程服務器。