身份驗證
基於使用情況的計費替代方案:使用 OpenAI API 密鑰
如果您更喜歡按使用量付費,您仍然可以使用 OpenAI API 密鑰進行身份驗證:
printenv OPENAI_API_KEY | codex login --with-api-key或者,從文件中讀取:
codex login --with-api-key < my_key.txt舊的 --api-key 標誌現在會退出並顯示錯誤,指示您使用 --with-api-key,以便該密鑰永遠不會出現在 shell 歷史記錄或進程列表中。
此密鑰必須至少具有 Responses API 的寫入權限。
從 API 密鑰遷移到 ChatGPT 登入
如果您之前使用 Codex CLI,通過 API 密鑰進行基於使用情況的計費,並想切換到使用您的 ChatGPT 計劃,請按照以下步驟操作:
- 更新 CLI 並確保
codex --version是0.20.0或更高版本 - 刪除
~/.codex/auth.json(在 Windows 上:C:\\Users\\USERNAME\\.codex\\auth.json) - 再次運行
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 容器,您可以執行:
# 用您的 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:
ssh user@remote 'mkdir -p ~/.codex'
scp ~/.codex/auth.json user@remote:~/.codex/auth.json或嘗試這個單行命令:
ssh user@remote 'mkdir -p ~/.codex && cat > ~/.codex/auth.json' < ~/.codex/auth.json通過 VPS 或遠程連接
如果您在沒有本地瀏覽器的遠程機器(VPS/服務器)上運行 Codex,登入助手會在遠程主機上的 localhost:1455 上啟動服務器。要在您的本地瀏覽器中完成登入,請在啟動登入流程之前將該端口轉發到您的機器:
# 從您的本地機器
ssh -L 1455:localhost:1455 <user>@<remote-host>然後,在該 SSH 會話中,運行 codex 並選擇"使用 ChatGPT 登入"。出現提示時,在您的本地瀏覽器中打開打印的 URL(將是 http://localhost:1455/...)。流量將被隧道化到遠程服務器。