0:00 0:00
記事
Claude Codeの認証方法とログインできないときの確認ポイント:OAuth・APIキー・再ログイン手順
Claude Codeで認証できない・ログインできないときの切り分け手順を、公式ドキュメントに基づいてまとめます。OAuth、APIキー、`claude setup-token`、クラウドプロバイダー経由の優先順位と、よくあるエラー別の対処を初心者向けに整理します。
結論:認証はOAuthが基本、詰まったら優先順位と保存先を思い出す
Claude Codeの認証は、2026年4月20日時点の公式認証ガイドによれば、次の4つのうちどれか1つが通っていれば利用できます。
- Claude.aiのブラウザログイン(OAuth): Pro/Max/Team/Enterpriseユーザーの基本ルート。
- Anthropic ConsoleのAPIキー: 従量課金で使いたい人、CI環境で使いたい人向け。
- 長期用OAuthトークン:
claude setup-tokenで発行する。CIや非対話環境で使う。 - クラウドプロバイダー経由: Amazon Bedrock、Google Vertex AI、Microsoft Foundryのいずれか。会社支給環境向け。
ログインできないときは、(1)どのルートで認証しているのか、(2)認証情報がどこに保存されているか、(3)環境変数で上書きされていないかの3点を切り分けるのが最短です。本記事では原因を症状別に追えるように整理します。
より上流のインストール手順はmacOSでClaude Codeをインストールする手順やWindowsでClaude Codeを使う方法、料金まわりはClaude Codeは無料で使える?料金・制限・始め方を整理にまとめています。
認証ルートの優先順位を知っておく
Claude Codeは起動時、複数の認証情報があった場合に次の優先順位で採用します(公式ドキュメント参照)。
- 環境変数
ANTHROPIC_API_KEY - 環境変数
ANTHROPIC_AUTH_TOKEN apiKeyHelper(設定ファイルで指定したスクリプトの出力)- 環境変数
CLAUDE_CODE_OAUTH_TOKEN - ブラウザOAuthで保存された認証情報
つまり環境変数でAPIキーを設定していると、どれだけ/loginでブラウザ認証を繰り返しても、そちらが優先されます。「昨日まで動いていたのに急にログインが通らない」「/loginの直後でも別アカウントで動く」といった症状の大半はこれが原因です。
確認コマンドは次の通りです(macOS/Linux/WSL)。
env | grep -E 'ANTHROPIC_|CLAUDE_CODE_' PowerShellなら次のコマンドで環境変数の一覧を確認できます。
Get-ChildItem Env: | Where-Object { $_.Name -match 'ANTHROPIC_|CLAUDE_CODE_' } 意図しないANTHROPIC_API_KEYが残っている場合は、シェル設定ファイル(.bashrc、.zshrc、$PROFILE)を見直し、必要であればunset ANTHROPIC_API_KEYで一時的に外して再度claudeを起動してください。
ルート1:ブラウザOAuth(Pro/Max/Team/Enterprise)
個人利用で一番多いルートです。Claude.aiのPro以上のサブスクリプションがあれば、ブラウザで認証するだけで使えます。
通常のログイン手順
初回起動時、または/loginを打つと、ターミナルに認証用URLが表示されます。
claude 起動後、対話内で明示的に切り替える場合は次のスラッシュコマンドを使います。
/login ブラウザが自動で開き、Claude.aiのログイン画面に遷移します。権限確認の画面で「Allow」を押すと、ターミナル側に「Login successful」と表示されて完了です。ブラウザが自動で開かない環境(SSH越し、WSL、コンテナなど)では、ターミナルに出たURLを手元のブラウザに貼って認証します。
認証情報の保存場所
ブラウザOAuthで認証すると、トークンは次の場所に保存されます。
- macOS: キーチェーン(
Claude Code-credentialsという名前で登録される) - Windows / Linux / WSL:
~/.claude/.credentials.json
キーチェーンやファイルを手動で消せば、認証情報もクリアされます。macOSで「毎回キーチェーンへのアクセス許可を求められる」場合は、キーチェーン側で該当項目を選択し、「アクセス制御」からClaude Codeに常時許可を与えると解消します。
ログアウトして再ログインする
アカウントを切り替えたい、トークンがおかしくなった、という場合は/logoutで一度認証情報を破棄してから/loginし直します。
/logout /login /logoutはキーチェーンまたは~/.claude/.credentials.jsonの認証情報を削除するだけで、プロジェクト側の設定や履歴は消えません。気軽に試して大丈夫です。
ルート2:Anthropic ConsoleのAPIキー
従量課金で使いたい場合や、社用PCでサブスク契約が難しい場合は、Anthropic ConsoleのAPIキーを使います。
Consoleの「API Keys」画面で発行したsk-ant-...という文字列を、環境変数で渡します。
# macOS / Linux / WSL
export ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxxxxxxxxxxxx
# PowerShell
$Env:ANTHROPIC_API_KEY = "sk-ant-api03-xxxxxxxxxxxxxxxxxxxx"
シェル設定ファイル(.bashrcや$PROFILE)に直書きすると、GitHubに誤コミットしたときやPCを共有するときにリスクが跳ね上がります。1password/Bitwarden/Vaultなどの秘密情報管理ツールで都度読み出す、あるいはプロジェクト単位でdirenvのように限定スコープでロードする運用が安全です。
認証が通っているかは次のコマンドで確認します。
/status 現在のログインユーザー、使用している認証ソース、モデル、ワーキングディレクトリなどが表示されます。APIキー認証の場合は「API Key」の表示になり、Consoleのキー末尾の一部が見えます。
ルート3:長期トークン(CIや非対話環境向け)
GitHub ActionsのようなCI環境で/loginのブラウザフローを回せない場合は、長期用OAuthトークンを事前に発行しておきます。
ローカルの対話環境で次のコマンドを実行すると、長期トークンを生成できます。
claude setup-token 画面の指示に従ってブラウザで認証したあと、表示されたトークンをCI側のSecretsに登録し、起動時に環境変数として読み込みます。
# GitHub Actions の例
env:
CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
CLAUDE_CODE_OAUTH_TOKENは優先順位4なので、ANTHROPIC_API_KEYと共存させると後者が勝つ点に注意してください。CI上で「認証されているはずなのにキー側で課金されている」場合は、環境にAPIキーが残っていないかを確認します。
ルート4:クラウドプロバイダー経由
会社支給の環境で、Anthropicと直接契約せずAmazon Bedrock、Google Vertex AI、Microsoft Foundryのいずれか経由でClaude Codeを使うルートです。それぞれAWS CLI、gcloud、Azure CLIの認証が前提で、Claude Code側では対応するフラグや環境変数を設定します。詳細は公式の認証ページに設定例がまとまっているので、社内のクラウド運用チームと合わせて設定してください。
このルートでは、Anthropic直契約では使えるブラウザログインは基本的に使いません。/loginを打っても、クラウドプロバイダーの設定が優先される挙動です。
症状別:ログインできないときの確認ポイント
/loginを押してもブラウザが開かない
SSH越しやWSL、リモート開発コンテナでよく起きます。ターミナルに表示されるURLを手元のブラウザに貼り付ければ進みます。ブラウザ側でログイン完了後、自動でターミナルに戻らない場合は、表示される「認証コード」をコピーしてターミナルに貼り付ければ完了します。
Invalid API keyと出る
Console APIキーを環境変数で渡しているのに弾かれるケースです。次を確認します。
- キーの先頭は
sk-ant-か - コピー時に前後の空白が混ざっていないか
- Consoleの該当キーが無効化(Revoke)されていないか
- そのキーに紐づく組織のクレジット残高が0になっていないか
クレジット切れのときはAnthropic Consoleの「Billing」からチャージする必要があります。個人利用ならConsole従量ではなくPro/Maxのサブスクのほうが安定しやすい点は料金記事でも触れている通りです。
401 Unauthorized / 403 Forbidden
ANTHROPIC_API_KEYとANTHROPIC_AUTH_TOKENの両方を設定していないか- 組織の管理者がOrganization SCIM/SSO側でClaude Codeをブロックしていないか
- ネットワークが企業プロキシ経由で、
api.anthropic.comやclaude.aiをブロックしていないか
診断は次のコマンドで一通りチェックできます。
claude doctor シェル、PATH、依存コマンド、ネットワーク疎通をまとめて確認してくれます。
Something went wrong. Please try again.
ブラウザOAuth中に出る汎用エラーです。多くは一時的なもので、次の順で試します。
- 同じブラウザでClaude.aiに入り直してセッションを復旧させる
- シークレットウィンドウで
/loginをやり直す /logoutで認証情報を破棄 →/login- 異なるブラウザで試す
/login後もアカウントが切り替わらない
環境変数ANTHROPIC_API_KEYやCLAUDE_CODE_OAUTH_TOKENが優先されているケースです。/statusで表示されるAuth Sourceを確認し、意図しないキーが使われていればunsetまたは$Env:で一時的に外します。
Windowsで「Git Bashが見つからない」
認証自体ではなくツール呼び出しの失敗ですが、症状として認証画面に進めないことがあります。原因と対処はWindowsでClaude Codeを使う方法のGit Bash節にまとめています。
再ログインが必要になったときのフロー
トラブルシュートの迷子防止に、次の順で進めると時間を無駄にしません。
/statusで現在のAuth Sourceを確認する- 環境変数
ANTHROPIC_API_KEY/ANTHROPIC_AUTH_TOKEN/CLAUDE_CODE_OAUTH_TOKENが残っていないかenv | grepで確認 /logoutで認証情報を破棄- 必要に応じて
~/.claude/.credentials.jsonやmacOSキーチェーンの該当項目を手動で削除 /loginでやり直し- 直らなければ
claude doctorでネットワーク/PATHの問題を切り分け - それでも無理ならシェルを完全に閉じて再起動
「/loginを連打しても改善しない」問題のほとんどは、現在使われている認証ソースがブラウザOAuthではないことが原因です。最初の/statusと環境変数の確認で8割は解決します。
企業・チーム利用での注意点
- APIキーを
CLAUDE.mdや.env.exampleにうっかり書かないようにする - リポジトリの
.gitignoreに.envと.claude/.credentials.jsonを含める - 社員がPro課金をしている場合、会社のAPIキーと個人OAuthを混在させると課金主体が混乱する
- 長期トークンを共有しない(CIの場合は専用トークンを発行する)
- アクセス経路が複数になりがちなので、
/statusで認証ソースをチーム内で確認し合う
Claude Codeは起動ごとに認証情報をロードし直すので、シェル設定を書き換えたあとは必ずターミナルを開き直すのが鉄則です。タブを開き直さずにsource ~/.bashrcだけで済ませると、既存プロセスの環境変数は古いままになります。
チェックリスト
-
/statusでAuth Sourceが意図した認証ルートになっている -
env | grep ANTHROPIC_に不要なキーが残っていない -
claude doctorにネットワーク警告が出ていない - Pro以上の契約があるアカウントでClaude.aiにログインできる(OAuthルートの場合)
- Console APIキーがRevokeされておらずクレジット残高がある(APIキールートの場合)
-
.gitignoreにAPIキーを含むファイルが入っている - CIで使う場合は専用の長期トークンを発行して環境変数で渡している
まとめ
Claude Codeの認証は、OAuth・APIキー・長期トークン・クラウド経由の4ルートを、環境変数→apiKeyHelper→長期トークン→OAuthの優先順位で自動選択する仕組みです。「ログインできない」の多くは、/loginの挙動自体ではなく別ルートに切り替わっていることが原因で、/statusと環境変数確認でほぼ特定できます。
認証でつまずくたびに同じ調査をしなくて済むように、本記事のチェックリストと/status・claude doctorの存在だけは手元に残しておくと、以後のトラブルが短時間で片付きます。