Codex アカウント切り替えと複数アカウントのログイン手順

Codex アカウント切り替えと複数アカウントのログイン手順

Codex を個人の ChatGPT アカウントで使い始めたあと、業務用のワークスペースや API キー課金へ切り替えたくなる場面は意外と多い。サインイン方式が複数あるぶん、いまどれが有効なのかを取り違えると、意図しない課金や「ログインできない」に出くわしやすい。本記事では Codex CLI のアカウント切り替えを軸に、ChatGPT サインインと API キーの違い、ログアウトからの入れ直し、複数アカウントの使い分けまでを公式情報に沿って整理する。


結論powered by Claude

Codex のサインインには「ChatGPT アカウント」「API キー」「アクセストークン」の 3 通りがあり、Codex CLI の既定は ChatGPT アカウントでのサインインだ。ブラウザが開いて認証し、戻ってきたトークンで動く。別のアカウントへ移りたいときの基本は単純で、いったん codex logout で保存済みの資格情報を消し、もう一方のアカウントで codex login し直すという流れになる。

個人利用なら ChatGPT サインインがプランの枠内で完結して手軽だが、CI など人手を介さない処理や、使った分だけ支払う形で回したいなら API キーでのサインインが向く。printenv OPENAI_API_KEY | codex login --with-api-key のように標準入力からキーを渡せる。いま自分がどの方式で認証しているか分からなくなったら、codex login status を実行すれば有効な認証モードを確認できる。

資格情報は既定で ~/.codex/auth.json に保存され、CODEX_HOME を差し替えればアカウントごとに設定一式をまるごと分けられる。ブラウザの無いサーバへ入るときは、codex login --device-authデバイスコード認証(beta) が用意されている。要点は「いま、どの口で入っているか」を常に把握しておくことで、ここを押さえれば不意の課金やログイン不能はほぼ避けられる。

目次 (11)

いまどの方式でサインインしているかを確認する

Codex のサインインには 3 つの方式がある。第一に ChatGPT アカウントでのサインイン(サブスクリプションの枠で使う)、第二に API キーでのサインイン(使用量に応じた課金)、第三に ChatGPT Enterprise のワークスペースで使うアクセストークンだ。Codex CLI、Codex アプリ、IDE 拡張のいずれでも、何も指定しなければ既定で ChatGPT アカウントでのサインインが選ばれる(出典: https://developers.openai.com/codex/auth )。

アカウントを切り替える前に、まず「いま何で入っているか」を確認しておくと事故が減る。codex login status を実行すると、有効な認証モードが表示され、サインイン済みなら終了コード 0 で返る。表示が想定と違っていれば、その時点で切り替えの判断がつく。最初の一手として、このコマンドを習慣にしておきたい。状態を見ないまま操作を始めると、消したくない側を抜いてしまうなどの取り違えが起きやすいからだ。

アカウント切り替えの基本 — ログアウトしてから入り直す

公式ドキュメントは「アカウントを切り替える専用コマンド」を用意しているわけではない。実際の切り替えは、保存済みの資格情報をいったん破棄し、別のアカウントで入り直す、という素直な手順で行う。codex logout は API キー・ChatGPT アカウントの両方について、保存済みの資格情報を削除する(出典: https://developers.openai.com/codex/auth )。これを踏まえると、切り替えは次の 3 ステップに整理できる。

Step 1: codex login status で現在の認証を確認する

まず codex login status で、現在どの方式・どのアカウントで入っているかを確かめる。ここを飛ばすと、消したくない側をログアウトしてしまったり、すでに目的のアカウントで入っていたのに気づかず二度手間になったりする。表示された認証モードが目的のものなら、そもそも切り替えは不要だと分かる。最初の確認が、後の手戻りを減らす。

Step 2: codex logout で資格情報を消す

次に codex logout を実行し、保存済みの資格情報を削除する。これは API キーと ChatGPT アカウントのどちらの認証も対象にするため、実行後はサインインしていない状態に戻る。中途半端に片方だけ残ると、後述のとおり意図しない方式が優先されることがあるので、切り替え時にはまず綺麗に消しておくのが安全だ。

Step 3: codex login で目的のアカウントに入り直す

最後に codex login を実行し、目的のアカウントでサインインし直す。ChatGPT アカウントでのサインインなら、ブラウザが開いて認証画面に進み、完了するとトークンが CLI 側へ戻ってくる(出典: https://developers.openai.com/codex/auth )。API キーで入りたい場合は次の節の方法に切り替える。入り直したら、もう一度 codex login status で意図どおりかを確認しておくと確実だ。

ChatGPT サインインと API キーの使い分け

どちらの方式を選ぶかは、用途で決めるとぶれない。手元での対話的な開発で、ChatGPT のプラン枠内で使いたいなら ChatGPT アカウントでのサインインが手軽だ。一方、CI など人手を介さない処理や、使った分だけ支払う形で回したいなら API キーでのサインインが推奨される(出典: https://developers.openai.com/codex/auth/ci-cd-auth )。API キーは画面にベタ貼りせず、printenv OPENAI_API_KEY | codex login --with-api-key のように標準入力から渡すのが安全だ。

ここで一つ落とし穴がある。ChatGPT アカウントでのサインインが有効なままだと、環境変数に API キーを置いても、そちらが使われないことがある。「API キーにしたつもりが、実は ChatGPT 側の枠で動いていた」「逆に弾かれた」という取り違えは、まさにこの優先順位が原因だ。確実に API キーへ寄せたいなら、先に codex logout で ChatGPT 側を抜いてから入れ直すと迷わない。

複数アカウントを 1 台で使い分ける — 保存場所と CODEX_HOME

資格情報は既定で ~/.codex/auth.json にキャッシュされ、設定によっては OS のキーチェーンなどの資格情報ストアへ保存される。どこに置くかは cli_auth_credentials_store という設定で切り替えられる(出典: https://developers.openai.com/codex/auth )。個人の既定値は ~/.codex/config.toml に置かれ、Codex のホームそのものは CODEX_HOME 環境変数で差し替えられる(出典: https://developers.openai.com/codex/config-basic )。

この CODEX_HOME を使うと、毎回ログアウトとログインを繰り返さずにアカウントを併用できる。たとえば個人用と業務用でそれぞれ別のディレクトリを CODEX_HOME に割り当てれば、auth.json も設定も丸ごと分かれるため、同じ端末で双方を行き来しても混ざらない。頻繁に切り替えるなら、codex logout を挟む方式よりこちらのほうが取り違えが起きにくく、起動時のひと手間だけで済む。

ブラウザの無いサーバでサインインする

リモートのサーバや GUI の無い Linux 環境では、ChatGPT アカウントでのサインインがそのままでは進めにくい。ブラウザで認証画面を開く必要があるためだ。とはいえ公式には、いくつかの逃げ道が用意されている(出典: https://developers.openai.com/codex/auth )。手元に画面がある端末を一つ用意できれば、サーバ側でも問題なくサインインを通せる。

デバイスコード認証とアクセストークン

ブラウザの無い環境向けには、codex login --device-auth によるデバイスコード認証(beta)が使える。手元の別端末で表示されたコードを入力し、認証を通す方式だ。ほかに、手元で作った auth.json をサーバへ持ち込む方法(取り扱いに注意が要る)や、ローカルへの戻り先(ポート 1455)を SSH の転送でつなぐ方法もある。ChatGPT Enterprise のワークスペースでは、管理者が許可したメンバーがアクセストークンを発行し、printenv CODEX_ACCESS_TOKEN | codex login --with-access-token の形で非対話的に入れる(出典: https://developers.openai.com/codex/enterprise/access-tokens )。

よくあるつまずきと確認の手順

切り替えにまつわるトラブルは、ほとんどが「どの口で入っているかを見失う」ことに行き着く。「ログインできない」ときは、まず codex login status で現在の状態を確かめ、想定と違えば codex logout してから入り直す。この基本だけで解決する例は多い。状態を見ずに何度もログインを試すより、いったん認証をまっさらにしてからやり直すほうが早い。

意図しない課金が気になる場合は、ChatGPT アカウントでのサインインと API キーのどちらが有効になっているかを必ず確認する。前述のとおり、両方の資格情報が中途半端に残っていると優先順位で取り違えが起きやすい。業務と個人を併用するなら、CODEX_HOME で環境ごと分けてしまうのが結局いちばん安全だ。切り替えのたびに状態を確認する一手間が、後の混乱を防いでくれる。

まとめ — 「どの口で入っているか」を常に確認する

Codex のアカウント切り替えは、専用コマンドこそ無いものの、codex logout で資格情報を消し、codex login で目的のアカウントに入り直す、という素直な流れで完結する。ChatGPT アカウントでのサインインは手元での対話的な開発に、API キーでのサインインは CI など人手を介さない処理に向く、という使い分けを押さえておけば、意図しない課金や弾かれる事故は避けやすい。

頻繁に個人用と業務用を行き来するなら、毎回ログインし直すより CODEX_HOME で設定一式を分ける方が取り違えが少ない。ブラウザの無いサーバには、デバイスコード認証やアクセストークンという逃げ道もある。最後にもう一度確認したいのは、切り替えのたびに codex login status で「いま、どの口で入っているか」を見ておくことだ。この小さな一手間が、Codex を複数アカウントで安全に使い回す近道になる。

参考になったら ♡
Codexer Navi 編集部
@codexer_navi

Anthropic の Claude / Claude Code を中心に、日本のエンジニア向けに最新動向と実務 を毎日発信。 運営方針 は メディアについて をご覧ください。