Claude Codeは初回に claude を起動するとブラウザが開き、claude.aiのサブスクかClaude Consoleのどちらかでログインします。つまずく原因の多くは、シェルに残った ANTHROPIC_API_KEY がサブスクより優先されることにあります。この記事では、Pro・Max・Team・Console・クラウドの認証方式の違い、どの認証情報が使われるかを決める7段階の優先順位、APIキーとサブスクの切り替え、apiKeyHelperとsetup-tokenの設定例、Login expiredなどエラー別の直し方を、2026年10月22日時点の最新版v2.1.308と公式ドキュメントに沿って整理しました。
まとめ|Claude Codeのログインで先に決める認証方式と確認コマンド
個人で使うならPro・Maxのclaude.aiアカウントでログインし、ANTHROPIC_API_KEY は設定しないのが最短です。APIの従量課金で使いたい場合だけConsoleでログインするか、キーを環境変数に入れます。両方が残っていると、承認済みのAPIキーがサブスクより先に使われます。
ログインがおかしいと感じたら、最初に /status で使用中の認証方式を確かめます。原因が分からなければ /logout で全部消してから claude を起動し直すのが公式の手順です。CIのようにブラウザを開けない環境は、claude setup-token の1年トークンかAPIキーを使い分けます。
初回起動でClaude Codeにログインする手順とアカウント種別の選び方
ログインはインストール後の最初の起動で求められます。導入がまだなら、Claude Codeとは?できること・使い方・料金で全体像を、Windowsの場合はClaude CodeをWindowsに入れる手順でインストールまでを先に済ませてください。
claudeコマンドの初回起動からLogin successfulまでの3手順
公式の認証ガイドによると、手順は次のとおりです。
- ターミナルで
claudeを実行し、表示されたログイン方法からアカウント種別を選ぶ - 開いたブラウザでサインインする。ブラウザが開かなければ
cキーでURLをコピーして貼り付ける - ブラウザにログインコードが出たら、ターミナルの
Paste code here if promptedに貼る。Login successfulが出たらEnterで続行
2番目のコード表示は、ブラウザがClaude Codeのローカルのコールバックに届かないときに起きます。WSL2・SSH・コンテナでよく出る挙動で、故障ではありません。事前に claude auth login でサインインしておくと、初回のログイン画面は省かれます。
Pro・Max・Team・Console・クラウドの5種類で変わる課金先と前提
同じ「ログイン」でも、選んだアカウントで請求先が変わります。
| アカウント種別 | サインイン先 | 課金 | 前提 |
|---|---|---|---|
| Pro・Max | claude.ai | 月額サブスク | 個人で契約 |
| Team・Enterprise | claude.ai | 組織の一括請求 | 管理者からの招待 |
| Claude Console | Console | APIの従量課金 | 管理者の招待とロール付与 |
| クラウド(Bedrockなど) | なし(環境変数) | 各クラウドの請求 | クラウド側の認証設定 |
| Claude apps gateway | 社内SSO | 接続先クラウドの請求 | 管理者がゲートウェイを運用 |
表のクラウド3種はBedrock・Agent Platform・Foundryです。Consoleでログインする人には、管理者が「Claude Code」か「Developer」のロールを付けておく必要があります。前者はClaude Code用のAPIキーしか作れません。公式のアカウント種別一覧に無料プランは載っていないため、無料のclaude.aiアカウントでは使えないと考えて準備してください。プランごとの金額と損益分岐はClaude Codeの料金プラン比較で扱っています。
ANTHROPIC_API_KEYとサブスクのどちらが使われるかを決める優先順位
「Maxを契約したのにAPIに課金された」という相談の正体は、ほぼこの優先順位です。
公式が定める7段階の認証優先順位とリクエストでの各認証情報の送られ方
複数の認証情報があるとき、Claude CodeはAuthentication precedenceの順に1つだけ選びます。
CLAUDE_CODE_USE_BEDROCKなどが設定されているときのクラウドの認証情報ANTHROPIC_AUTH_TOKEN(Authorization: Bearerヘッダで送信。LLMゲートウェイ向け)ANTHROPIC_API_KEY(X-Api-Keyヘッダで送信)apiKeyHelperスクリプトの出力CLAUDE_CODE_OAUTH_TOKEN(claude setup-tokenで作る長期トークン)- Anthropicのプロファイルとフェデレーションの認証情報
/loginで保存したサブスクのOAuth認証情報
サブスクのログインは最下位です。対話モードでは ANTHROPIC_API_KEY を使うか一度だけ聞かれ、承認すると記憶されます。ところが -p の非対話モードでは、キーがあれば確認なしで常に使われます。スクリプトからだけ課金が発生するのはこのためです。承認を取り消すには、/config の「Use custom API key」を切り替えます。
/statusとclaude auth statusで使用中の認証方式を確かめる
セッション内では /status を打つと、使用中の方式と使われていない認証情報の印が出ます。シェルから確かめるなら、CLIリファレンスにある claude auth status が便利です。ログイン済みなら終了コード0、未ログインなら1を返し、JSONの authMethod は none・claude.ai・oauth_token・api_key・api_key_helper・third_party のいずれかになります。
# サブスク以外の認証が使われていたら止める(jq が必要)
method=$(claude auth status | jq -r '.authMethod')
if [ "$method" != "claude.ai" ]; then
echo "サブスク以外の認証です: $method" >&2
exit 1
fi
チームの開発端末を点検するときや、CIの最初のステップで想定外のキーを拾っていないか確かめるときに、この判定がそのまま使えます。人が読む形で見たいときは claude auth status --text を付けます。
サブスクとAPIキーを切り替える設定とapiKeyHelperの書き方
切り替えは「上位の認証情報を消す」か「上位に置く」かのどちらかです。
APIキーからサブスクへ戻すunsetとシェル設定ファイルの掃除
サブスクに戻すには、環境変数を外してから起動し直します。公式のトラブルシューティングが示すコマンドは次のとおりです。
# macOS・Linux・WSL
unset ANTHROPIC_API_KEY
claude
# Windows PowerShell
Remove-Item Env:ANTHROPIC_API_KEY
claude
unsetは今のシェルにしか効きません。~/.zshrc・~/.bashrc・~/.profile の export ANTHROPIC_API_KEY= 行を消し、WindowsならPowerShellの $PROFILE とユーザー環境変数も確認します。プロジェクトの .env を読み込むツールを併用している場合は、そちらに残っていないかも見てください。
キーなしConsoleサインインとAPIキー作成で変わる保存情報の違い
Consoleでログインするとき、v2.1.242以降は2つの選択肢が出ます。推奨の「Sign in with your Console account」はOAuthのトークンをプロファイルとして保存し、APIキーを作りません。従来の「Create an API key」は、Console用のAPIキーを発行して保存します。
APIキーの発行を禁じている組織でも、前者ならClaude Codeを使えます。ただし前者でサインインすると、端末に保存されたclaude.aiのログインは解除される仕組みです。forceLoginOrgUUID を設定した環境やクラウド接続時は選択肢が出ず、キーが自動で作られます。キーを自分でConsoleから発行する手順と単価は、Anthropic APIの料金とAPIキー取得方法を見てください。
apiKeyHelperで保管庫から短命キーを渡すsettings.jsonの例
キーをシェルに直書きしたくないときは、apiKeyHelperにキーを出力するコマンドを登録します。macOS・Linuxでは /bin/sh、Windowsでは cmd で実行され、出力が X-Api-Key と Authorization: Bearer の両方に入ります。
{
"apiKeyHelper": "~/bin/get_claude_key.sh"
}
#!/bin/sh
# 例:1Password CLI から取り出す。標準出力にはキーだけを出す
op read "op://Dev/anthropic/credential"
出力は既定で5分キャッシュされ、環境変数の CLAUDE_CODE_API_KEY_HELPER_TTL_MS(ミリ秒)で間隔を変えられます。APIが401か403を返したときも再実行の対象です。スクリプトがキー以外のログ行を出すと「returned output that cannot be used as an API key」で弾かれ、10秒を超えるとプロンプト欄に遅延の警告が出ます。
仕事用と個人用をCLAUDE_CONFIG_DIRで同時ログインさせる
1台で会社のTeamと個人のMaxを使い分けるなら、アカウントごとに設定ディレクトリを分けます。CLAUDE_CONFIG_DIR を変えると、設定・履歴・ログインがすべて別になります。
# ~/.bashrc または ~/.zshrc に追記
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'
新しいターミナルで claude-work を初めて実行すると、そのディレクトリ用のログインが始まります。例外として、キーなしのConsoleサインインは設定ディレクトリの外に保存されるため、2つを分けられません。/logout で切り替えるより、こちらのほうが再ログインの手間がかかりません。
Claude Codeにログインできないときのエラー別の原因と直し方
エラーの文面ごとに原因がほぼ決まっています。公式のエラー一覧に沿って、よく出る順に並べました。
WSL2・SSH・コンテナでブラウザが戻らないときの貼り付け手順
リモート環境ではブラウザが別のマシンで開くため、サインイン後にコードが表示されます。これをターミナルに貼れば完了です。WSL2でブラウザ自体が開かないときは、Windows側のブラウザを指定します。
export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"
claude
貼り付けても反応しない場合は、端末の貼り付けキーが入力欄に届いていません。Windows Terminalなら右クリックかShift+Insertを試し、だめなら標準入力からコードを読む claude auth login に切り替えます。OAuth error: Invalid code は、コードの期限切れかコピー時の欠けが原因です。
組織の無効化エラーは環境変数に残った古いAPIキーが原因になる
サブスクが有効なのに API Error: 400 ... "This organization has been disabled" が出るのは、前職や別案件のAPIキーが環境変数に残り、サブスクを上書きしているためです。直し方は前章のunsetとシェル設定の掃除で、/login をやり直しても解決しません。
Invalid API key · Fix external API key も同じ系統です。コピーしたキーに改行が混ざると、送信前にClaude Codeが止め、何文字目に改行があるかを表示します。
Login expiredと401認証エラーを原因と再ログインの可否で見分ける
Login expired · Please run /login は、保存したログインの更新に失敗して認証情報が消えた状態です。/login で入り直せば戻ります。頻発するなら、トークンの検証は時刻に依存するのでシステム時計のずれを確認してください。期限の3日前からは起動時に Your login expires in 3 days と警告が出ます。
一方、401 Invalid authentication credentials は期限切れではありません。認証情報の失効、組織の無効化、アカウント停止のいずれかで、再ログインでは直らないことがあります。まず /status で、保存したログインと承認済みのAPIキーのどちらが拒否されたのかを確かめます。
403 Request not allowedとmacOSのキーチェーン書き込み失敗
ログイン直後の API Error: 403 Request not allowed は、Pro・Maxならclaude.aiの設定画面で契約状態を、Consoleならロールの付与を確認します。社内プロキシが通信を妨げている場合もあります。
macOSでは認証情報がキーチェーンに入りますが、SSH接続中などで書き込めないと平文の ~/.claude/.credentials.json に退避されます。claude doctor で「macOS Keychain is not writable」が出たら、security unlock-keychain ~/Library/Keychains/login.keychain-db で解錠し、/logout と /login でキーチェーンへ戻します。このときMCPサーバーのログインも消える点に注意してください。
CIとチーム運用で使う認証方式の決め方と共有環境で採用しない場面
ここからは、個人のログインではなく「誰の認証情報で動かすか」を決める話です。
CIやスクリプトはsetup-tokenの1年トークンかAPIキーかの判断基準
claude setup-token はブラウザで承認すると1年有効のOAuthトークンを表示し、どこにも保存しません。それを CLAUDE_CODE_OAUTH_TOKEN に入れて使います。サブスクの枠内で動くのが利点です。
ただし、このトークンはモデルへのリクエストしかできず、Remote Controlやclaude.aiのコネクタは使えません。起動を速くする --bare モードは CLAUDE_CODE_OAUTH_TOKEN を読まないため、その場合はAPIキーかapiKeyHelperが必要です。
判断は次のとおりです。個人の検証用スクリプトならsetup-tokenで足ります。複数人が使うCIでは採用しません。個人のサブスクで組織の処理を回すことになり、退職時の失効や利用量の切り分けができないためです。共有のCIはConsoleのAPIキーをシークレットに入れて従量課金で回します。GitHubで動かす構成はClaude Code GitHub Actionsの導入と料金を参照してください。
管理設定でログイン方式と組織を固定して個人アカウントの混入を防ぐ
会社のTeamやEnterpriseを契約しても、開発者が個人のMaxでログインしてしまえば、利用状況は組織から見えません。これを防ぐのが管理設定の forceLoginMethod と forceLoginOrgUUID です。
{
"forceLoginMethod": "claudeai",
"forceLoginOrgUUID": ["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]
}
この設定がある端末では、ほかの組織のclaude.aiログインは起動時に止まり、ANTHROPIC_API_KEY やapiKeyHelperも起動時にブロックされます。配布はMDMなどの端末管理で行います。サーバー管理設定は組織に認証済みのアカウントにしか届かないため、最初のログインを誘導できません。権限ルールとあわせた設計はClaude Codeのセキュリティ設定にまとめています。社内の開発基盤へ生成AIを組み込む段階で、認証と課金の設計から相談したい場合は生成AI開発・AI受託開発で承っています。
OS別の認証情報の保存場所と、APIキーをenvに平文で書かない理由
保存場所はOSで違います。macOSは暗号化されたキーチェーン、Linuxは ~/.claude/.credentials.json(パーミッション0600)、Windowsは %USERPROFILE%\.claude\.credentials.json です。CLAUDE_CONFIG_DIR を設定すると、その配下に移ります。
settings.jsonの env ブロックにもキーを書けますが、値は平文のまま残ります。リポジトリに入るプロジェクト設定へ書くのは避けてください。apiKeyHelperで保管庫から取る方法なら、漏えい時の影響を小さくできます。なおClaude DesktopとクラウドセッションはAPIキー系の環境変数を読まず、サードパーティ推論の構成を除いてOAuthで動く仕組みです。BedrockやGoogle CloudのAgent Platformで社内のクラウド契約に寄せる構成は、Bedrock Claudeの使い方とClaude apps gateway for AWSとはで扱っています。
よくある質問
Claude Codeのログインと認証で、検索の多い質問に答えます。
Claude Codeは無料プランでもログインして使えますか?
公式の認証ガイドが挙げるアカウント種別は、Pro・Max、Team・Enterprise、Claude Console、クラウド、Claude apps gatewayです。無料のclaude.aiプランはこの一覧にありません。月額契約をせずに試したい場合は、Consoleに招待されたアカウントでログインし、APIの従量課金で動かす方法があります。どちらが得かは使用量で変わるため、料金プラン比較の記事で損益分岐を確認してから決めるのが確実です。
Claude Codeが今どのアカウントで動いているか確認する方法は?
セッション内なら /status で、ログイン方法・組織・メールアドレスが表示されます。ログインとAPIキーの両方がある場合は、使われていない側に付く印が見分ける目印です。シェルからは claude auth status がJSONを返し、authMethod の値で claude.ai(サブスク)か api_key かを判定できます。--text を付けると人が読む形式で出ます。
ログアウトやアカウントの切り替えはどうすればよいですか?
Claude Codeの入力欄で /logout を実行すると、保存された認証情報と初回セットアップの状態が消えます。次に claude を起動すると、ログイン方法の選択からやり直せます。シェルからログアウトする場合のコマンドは claude auth logout です。仕事用と個人用を頻繁に行き来するなら、CLAUDE_CONFIG_DIR でディレクトリを分けたほうが、毎回ログインし直さずに済みます。
Claude CodeでAPIキーとサブスクの両方を設定するとどちらに課金されますか?
承認済みの ANTHROPIC_API_KEY が優先され、APIの従量課金になります。サブスクのログインは優先順位の最下位です。対話モードでは初回にキーを使うか聞かれますが、-p を付けた非対話の実行では確認なしにキーが使われます。サブスクだけで使いたいなら、環境変数とシェルの設定ファイルからキーを消してください。
VS Code拡張でもログイン方法は同じですか?
VS Code拡張とAgent SDK、GitHub Actionsは、CLIと同じく ANTHROPIC_API_KEY・ANTHROPIC_AUTH_TOKEN・apiKeyHelperを読みます。したがって優先順位も同じで、環境変数のキーが残っていれば拡張でもキーが使われる仕組みです。一方、Claude Desktopとクラウドセッションはこれらを読まずにOAuthで動くため、同じ端末でもDesktopだけサブスクで動くという差が出ます。
関連記事
- Claude Codeとは?できること・使い方・料金:コード解析の実力と導入手順【2026年版】:Claude Code全体の機能と導入の流れです
- Claude Codeの使い方|インストールから権限・CLAUDE.md設定、初日の進め方まで:ログイン後に設定する権限とCLAUDE.mdを扱います
- Claude Codeの料金プラン比較|Pro・Max・Team・APIの損益分岐と支出上限の設定【2026年9月】:サブスクとAPI課金のどちらが得かを比べています
- Anthropic API(Claude API)の料金とAPIキー取得方法|モデル別単価・無料枠・月額上限【2026年9月】:ConsoleでのAPIキー発行手順です
- Claude Codeのセキュリティ設定|権限ルール・サンドボックス・管理設定で守る実装手順【2026年10月】:管理設定の配布と権限ルールの設計です