Claude CodeのログインはサブスクとAPIキーのどちら?確認と切り替え方法
Claude CodeのセッションがClaude ProとAPIキーのどちらを使用しているか確認する方法を解説します。両者は別のアカウントとして扱われ、請求も異なります。現在のアカウント状況の確認手順と、認証情報を切り替えるための具体的なコマンドを紹介します。
Claude Code セッションはどの認証情報を使用していますか?
Claude Code のログインには2つの方法があります。claude.ai の Claude サブスクリプションアカウントでサインインする方法と、Anthropic Console の組織に対して認証を行う方法です。後者の場合、すべてのトークンがその組織の API (application programming interface) 残高に対して課金されます。実行中のセッション内で /status を実行すると、現在どちらが有効かを確認できます。Status タブにはサインインしたアカウントの Login method 行が表示され、API キーが認証情報を提供している場合には追加で API key 行が表示されます。
このツールがプランに含まれているかどうかは別の問題であり、Claude Code が Claude Pro サブスクリプションに含まれているかどうかで回答しています。また、Claude API に対するキーの仕組みについては Claude API 認証の仕組みで解説しています。以下では、それら2つではカバーされていない、セッションが実際にどの認証情報を選択したか、およびその変更方法について説明します。
以下の動作は、2026年8月31日に閲覧した Anthropic の Claude Code 認証ドキュメントに基づいています。Claude Code は頻繁にリリースされており、これらの動作のいくつかは最小バージョンを規定しているため、マシンが故障していると判断する前に claude --version を実行してください。
1 つのメールアドレスを共有できる 2 つのアカウント
claude.ai のアカウントと platform.claude.com の Claude Console アカウントは別個のものです。同じメールアドレスを使用していても、それぞれ独立したサインイン情報、残高、組織を持つ別のアカウントとして扱われます。一方を作成しても、もう一方が自動的に作成されることはありません。Max プランの料金を支払っても Console 組織にクレジットは付与されず、Console 組織にチャージしてもプランには反映されません。
残高が異なるのは、課金モデルが異なるためです。サブスクリプションのログイン情報はプランの利用枠に基づきます。この利用枠は 5 時間ごとのローリングウィンドウおよび週単位のウィンドウでリセットされ、Web 版の Claude と共有されます。一方、Console の認証情報は組織単位でトークンごとに課金され、正確な数値は Console の利用状況ページで確認できます。実際の業務においてこの違いがどのようなコストになるかは、サブスクリプション料金とトークン単位の課金で解説しています。
アカウントの種類によっては、サブスクリプションを利用できないものがあります。Anthropic がログイン可能としているアカウントは、Pro または Max サブスクリプション、Claude for Teams または Enterprise のシート、Claude Console アカウント、およびクラウドプロバイダー経由のアカウントです。無料の claude.ai アカウントはこのリストに含まれていないため、無料プランのユーザーにはログインに使用できるサブスクリプションの認証情報がなく、無料版 Claude の機能と制限はコマンドラインツールには適用されません。残された手段は、API クレジットを持つ Console 組織を利用することであり、これは異なる形態の有料アカウントとなります。
パス 1: Claude サブスクリプションでのサインイン
プロジェクトディレクトリで claude を実行します。初回起動時にブラウザウィンドウが開き、プランが紐付いている claude.ai アカウントへのサインインを求められます。
claudeサーバー上では、2 つの挙動が異なります。ブラウザが自動的に開かない場合は、c を押してログイン URL をクリップボードにコピーし、手元のマシンのブラウザに貼り付けてください。ブラウザにターミナルへ戻るためのリンクではなくログインコードが表示された場合は、そのコードをターミナルのプロンプトに貼り付けます。SSH 接続、WSL2、コンテナ内では、リモートマシン上で Claude Code が開始したローカルのコールバックサーバーにブラウザが到達できないため、この挙動は正常です。
ログインが完了したら、推測ではなく確認を行います。セッションを開始し、/status を実行してください。Status タブにログイン方法、保存された組織名、およびメールアドレスが表示されます。/login を実行すると別のアカウントでフローをやり直せます。/logout は保存された認証情報を削除します。ログアウトすると初回セットアップの状態もリセットされるため、次に claude を実行するとオンボーディングが再度開始されます。
サーバーの再構築や引き継ぎを行う際、認証情報がどこに保存されるかを把握しておくことが重要です。
- Linux:
~/.claude/.credentials.json、ファイルモード0600。 - macOS: 暗号化された Keychain。SSH セッションなどで Keychain がロックされており書き込みが拒否された場合、Claude Code は同じ
0600ファイルへフォールバックします。 - Windows:
%USERPROFILE%\.claude\.credentials.json。プロファイルディレクトリ自体のアクセス制御により、ユーザーのみに制限されます。 CLAUDE_CONFIG_DIRが設定されているプラットフォーム: ファイルはそのディレクトリ配下に移動します。macOS の Keychain エントリもそれに紐付くため、異なるCLAUDE_CONFIG_DIRで開始されたセッションは別の認証情報を読み取ります。
Claude Code は /login および /logout を通じてそのファイルを管理します。手動での編集は、アカウントを切り替えるためのサポートされた方法ではありません。
パス 2: Console 組織に対する認証
Console へのアクセスは管理者から始まります。管理者は Console の Settings、Members、Invite からユーザーを招待します。その際、役割も割り当てられます。Claude Code ロールは Claude Code API キーのみを作成でき、Developer ロールはあらゆるキーを作成可能です。その後、/login プロンプトで Anthropic Console アカウントを選択します。
Claude Code v2.1.242 以降には 2 つの Console 認証ルートがあり、それぞれ保持する情報が異なります。Console アカウントでサインインすると、ブラウザのサインインから OAuth (open authorisation) トークンが保持され、Anthropic プロファイルとして保存されます。この場合、API キーは作成されません。Claude Code はこのログインを自動的に更新しますが、更新に失敗すると再サインインするまでリクエストも失敗します。プロンプトでレガシーと表示される API キーを作成すると、Console キーが発行され、他の認証情報と共に保存されます。静的なキーは更新の必要がないため、取り消されるまで機能し続けます。これはビルドサーバーでは有用ですが、ラップトップではセキュリティ上のリスクとなります。
キーレスの Console サインインを開始する前に ANTHROPIC_API_KEY を未設定にしてください。この変数が設定されていると、Claude Code はログインプロンプトを完全にスキップし、代わりに検出されたキーの承認を求めます。
常に選択肢が提示されるわけではありません。クラウドプロバイダー上でセッションを実行している場合、設定ファイルで forceLoginOrgUUID が設定されている場合、forceLoginMethod が "claudeai" または "console" に固定されている場合、あるいはマシン上に管理された設定ソースが存在し Claude Code がそれを読み取れない場合、Claude Code は確認なしでキーを作成します。これらは管理者の決定事項であるため、キーレスの選択肢が表示されない場合は、管理者に問い合わせてください。/status を実行すると、セッションが読み込んだすべての設定ファイル名が Setting sources 行に出力され、管理されたソースが適用されている場合はその名前も表示されます。
Claude Code を Console 組織に対して初めて認証すると、Console はそのための「Claude Code」というワークスペースを作成します。このワークスペースは Claude Code の利用料金を一元管理するために存在し、その内部で API キーを作成することはできません。
ログイン後に ANTHROPIC_API_KEY が優先される理由
Claude Code は、どの認証情報を使用するかをユーザーに尋ねることはありません。あらかじめ決められた順序でソースを確認し、最初に見つかったものを採用します。2026 年 8 月時点のドキュメントによると、その順序は以下の通りです。
CLAUDE_CODE_USE_BEDROCK、CLAUDE_CODE_USE_VERTEX、またはCLAUDE_CODE_USE_FOUNDRYが設定されている場合のクラウドプロバイダーの認証情報。- ベアラートークンで認証するゲートウェイ用の、
Authorization: Bearerヘッダーとして送信されるANTHROPIC_AUTH_TOKEN。 X-Api-Keyヘッダーとして送信されるANTHROPIC_API_KEY。- 設定ファイルで指定された
apiKeyHelperスクリプトの出力。 claude setup-tokenから取得した長期有効トークンであるCLAUDE_CODE_OAUTH_TOKEN。- Anthropic プロファイルおよびフェデレーションの認証情報。
/loginによって書き込まれたサブスクリプション認証情報。
サブスクリプションによるログインは最後です。そのため、プロセス環境のどこかで ANTHROPIC_API_KEY がエクスポートされていると、サインインしたアカウントよりも優先されます。その結果、自身のプランを利用しているつもりでも、セッションは Console の組織に対して課金されます。これは不具合ではありません。ドキュメント通りの順序で動作しているため、警告が表示されることもありません。
この問題を見落としやすい理由が 2 つあります。対話型セッションでは、Claude Code は見つかったキーを使用するかどうかを一度だけ尋ね、その回答を記憶します。そのため、1 ヶ月前に行った選択が今日まで適用され続けます。-p を使用する非対話型モードでは、プロンプトは一切表示されず、キーが存在すれば常にそれが使用されます。-p は cron ジョブや CI(継続的インテグレーション)ステップが実行されるモードであるため、無人ジョブこそが誤った認証情報に最も長く気づかない環境となります。
セッション内では、視覚的に素早く確認する方法があります。ANTHROPIC_API_KEY が設定されている間、/config には「Use custom API key」というトグルが表示されます。このトグルは変数が設定されている間のみ存在するため、表示されていなければ環境はクリーンな状態です。
サーバー上の不要なキーの特定
エクスポートされたキーは、シェルプロファイル以外にも複数の場所に残存します。
~/.bashrc、~/.bash_profile、~/.profile、または~/.zshrc。すべての新しいログインシェルで読み込まれます。- systemd ユニット。
Environment=またはEnvironmentFile=を通じて、サービスとして実行するあらゆるものに影響します。 - tmux サーバー。起動時の環境変数のコピーを保持します。サーバーが編集前から稼働し続けている場合、今日開いたペインであっても、先週プロファイルから削除した変数を継承することがあります。
- コンテナイメージまたは CI ジョブ定義。シェル内から読み取れるファイルの外側で変数が設定されます。
- Claude Code 設定ファイルの
envブロック。これは一般的な設定キーであり、通常の設定優先順位に従います。
他の作業を行う前に、これらを確認してください。
[ -n "$ANTHROPIC_API_KEY" ] && echo "ANTHROPIC_API_KEY is set" || echo "not set"
env | grep -E '^(ANTHROPIC_|CLAUDE_CODE_)' | cut -d= -f1
grep -n 'ANTHROPIC_API_KEY' ~/.bashrc ~/.bash_profile ~/.profile ~/.zshrc 2>/dev/null
tmux show-environment 2>/dev/null | grep ANTHROPIC
grep -n 'ANTHROPIC_API_KEY\|apiKeyHelper' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null2 番目のコマンドで意図的に cut をパイプしているのは、画面共有や録画を行っている場合に備え、シークレットの値を出力せず変数名のみを表示するためです。最初のコマンドで、変数が設定されているかを判断します。もし設定されていると表示された場合、このシェルから起動する次の claude はそのキーを使用します。5 つすべてで何も出力されない場合は環境認証情報が存在しないことを意味し、このセッションで開始されたプロセスは /login の認証情報へフォールスルーします。
Claude Code を実行するすべてのサービスには systemctl cat your-unit.service | grep -i environment を追加してください。ユニットファイルは独自の環境変数を設定し、シェルプロファイルを読み込むことはないためです。
ある認証情報から別の認証情報へのセッション切り替え
サブスクリプションに戻るには、以下の手順を実行します。
unset ANTHROPIC_API_KEY
[ -n "$ANTHROPIC_API_KEY" ] && echo "still set" || echo "clear"
claudeclearが表示されることを確認し、新しいセッションで /status を実行して、API key の行が消えていることを確認してください。シェルで環境変数を解除しても、すでに実行中の Claude Code プロセスには影響しません。プロセスは起動時の環境変数を保持し続けるためです。セッションを再起動してください。
その後、環境変数を設定したファイルから export 文を削除してください。削除しないと、次回のログインシェルで再度設定されてしまいます。tmux を使用している場合、tmux set-environment -u ANTHROPIC_API_KEY を実行すると、その時点以降に開くペインからは変数がクリアされますが、すでに開いているペインは以前のコピーを保持し続けます。
別の認証情報に切り替えるには、環境変数に ANTHROPIC_API_KEY を設定するか、/login を実行して Console アカウントを選択します。保存されたログイン情報を完全に消去するには、/logout を実行してください。キーレスの Console サインインを行った後であれば、/logout を実行することで、サインイン時に書き込まれた認証情報を削除および無効化できます。
/status の結果が期待と異なる場合は、claude doctor を実行してください。Claude Code が拒否した設定エントリが一覧表示されます。これにより、構文解析に失敗して適用されなかった設定ファイルを特定できます。
ブラウザがない環境での認証
claude setup-tokenは、/loginと同じブラウザ認証フローを開始し、1年間有効なOAuthトークンをターミナルに出力します。
claude setup-tokenトークンはどこにも保存されないため、表示されたらコピーしてください。利用するマシン上でCLAUDE_CODE_OAUTH_TOKENとして設定します。このトークンはサブスクリプションと紐付いて認証を行うため、Pro、Max、Team、またはEnterpriseプランが必要です。また、モデルへのリクエストのみに使用可能です。Bareモードではこのトークンを読み込まないため、--bareを渡すスクリプトでは、代わりにANTHROPIC_API_KEYまたはapiKeyHelperが必要です。
ここでも優先順位が問題となります。CLAUDE_CODE_OAUTH_TOKENがシェルプロファイルに記述されている場合、/loginを実行すると現在のセッションは新しいログインに切り替わりますが、変数を削除するまでは、新しいセッションごとにその変数が読み込まれます。
組織がAmazon Bedrock、Google Cloud、またはMicrosoft Foundry経由で推論を実行している場合、それらの認証情報が優先順位の最上位となり、ブラウザログインは一切発生しません。その設定は別作業となり、Claude CodeをBedrockまたはVertexで実行するで解説しています。
VPS(仮想専用サーバー)での長期セッションは、こうした問題が集中しやすい箇所です。セッションを開始したシェルが数ヶ月前に設定されたまま、一度も再起動されていない可能性があるためです。tmux内でClaude CodeをVPSで実行するでは、そのセットアップにおけるセッション側の管理について解説しています。
各認証情報による実際の消費量の確認
サブスクリプションでログインしている場合、/usage にプランの利用状況を示すバーと、消費の内訳が表示されます。Session ブロックに記載されている金額は、トークン数に基づきリスト価格からローカルで算出されたものです。そのため、請求額ではなく、API ユーザー向けの目安として扱ってください。サブスクリプション契約者は、金額ではなくバーの表示を確認してください。
Console の認証情報を使用している場合、重要な数値は Console 上で確認します。利用料金については使用状況ページを、メンバーごとの数値については Claude Code ダッシュボードを参照してください。ターミナルに表示される数値は、請求の根拠とはなりません。
作業中にプランのバーが全く動かない場合、環境変数に設定された認証情報が優先されています。この現象は、意図しない認証情報が有効になっていることを示す最も確実な兆候です。これについては Claude Code セッションの消費量を追跡する で詳しく解説しています。バーが動いた後に停止した場合は、プランの上限に達しています。これについては Claude の利用制限とリセット期間の仕組み を参照してください。
障害モードと確認事項
すべて正常に動作しているが、プランの使用状況が変化しない。 環境認証情報が有効になっています。/status を実行すると API key 行が表示され、上記のシェル確認コマンドで変数が表示されます。
サブスクリプションが有効であるにもかかわらず、リクエストが失敗する。 無効または期限切れの Console 組織に属するキーが、ログイン情報よりも優先されています。unset ANTHROPIC_API_KEY を実行して新しいセッションを開始し、再度 /status を確認してください。
起動時にログインの有効期限に関する警告が表示される。 最近のバージョンでは、/login 認証情報の有効期限が残り3日以内になると警告が表示されます。その後、/status には保存された組織名とメールアドレスとともに、ログイン行が期限切れ状態で表示されます。更新するには /login を実行してください。この警告によってリクエストがブロックされることはありませんが、そのため自動実行中のセッションが停止するまで見過ごされがちです。
apiKeyHelper が遅い、または失敗する。 Claude Code はデフォルトで5分ごとにヘルパーを再実行します(CLAUDE_CODE_API_KEY_HELPER_TTL_MS で調整可能)。実行に10秒以上かかるとプロンプトバーに通知が表示されます。エラーやタイムアウトによりキーが返されないヘルパーは、3回試行以内にリクエスト失敗を引き起こします。
正しい認証情報だが、組織が間違っている。 1つのメールアドレスが複数の組織に属している場合があります。/status には認証先の組織名が表示されるため、どの組織にログインしたか推測せず、その行を確認してください。
FAQ
現在 Claude Code がどのアカウントを使用しているか確認するには?
セッション内で /status を実行してください。Status タブには、サインインしたアカウントを示す Login method 行が表示されます。API キーで認証している場合は API key 行が追加されます。Anthropic プロファイルやフェデレーション認証が選択されている場合は、ログイン行の代わりに Profile 行が表示されます。セッション外では、シェルで ANTHROPIC_API_KEY が設定されているか確認することで、ログイン情報よりも優先される環境変数による認証情報が存在するかどうかを判断できます。
Claude Pro や Max のサブスクリプションが無視されるのはなぜですか?
環境変数による認証情報が優先されているためです。Claude Code は固定された順序で最初に見つかった認証情報を使用します。/login サブスクリプション認証情報は優先順位が最も低く、クラウドプロバイダーの変数である ANTHROPIC_AUTH_TOKEN、ANTHROPIC_API_KEY、apiKeyHelper、CLAUDE_CODE_OAUTH_TOKEN よりも下位に位置します。unset ANTHROPIC_API_KEY を実行して新しいセッションを開始し、/status で確認してください。その後、その変数を設定しているシェルプロファイル、systemd ユニット、tmux 環境、またはコンテナ定義から export を削除してください。削除しないと、次回のログインシェルで再び設定されます。
無料の Claude アカウントで Claude Code を使用できますか?
いいえ。Anthropic がログイン用として指定しているアカウントタイプは、Pro または Max サブスクリプション、Claude for Teams または Enterprise のシート、Claude Console アカウント、およびクラウドプロバイダーです。無料の claude.ai アカウントはこれに含まれないため、保存すべきサブスクリプション認証情報が存在しません。サブスクリプションの代わりに利用できる有料の選択肢は、API クレジットを持つ Claude Console 組織です。これはトークン単位の従量課金であり、同じメールアドレスを使用していても別の扱いのアカウントとなります。
claude.ai アカウントと Console アカウントで残高は共有されますか?
いいえ。これらは別々のアカウントであり、請求も別々に行われます。たとえ同じメールアドレスを使用していても同様です。サブスクリプションの利用枠は Web 版の Claude と共有されており、5 時間ごとのローリングウィンドウおよび週単位のウィンドウでリセットされます。Console の利用分は組織に対してトークン単位で請求され、Console の利用状況ページに表示されます。一方にクレジットを追加しても、もう一方には影響しません。
ヘッドレスサーバーで Claude Code を認証するには?
2 つの方法があります。SSH 経由で claude を実行し、手元のマシンでブラウザログインを完了させます。c を押して URL をコピーし、ブラウザでサインインしてください。ブラウザがリダイレクトせずにコードを表示した場合は、そのコードをターミナルに貼り付けます。または、ブラウザが利用可能なマシンで claude setup-token を実行し、表示された 1 年間有効なトークンをコピーして、サーバー上で CLAUDE_CODE_OAUTH_TOKEN として設定します。このトークンには Pro、Max、Team、または Enterprise プランが必要であり、モデルへのリクエストのみが可能です。そのため、--bare を使用するスクリプトには、別途 API キーまたは apiKeyHelper が必要です。