Claude Codeで認証が何度も切れる問題|原因と6つの対処法【2026年最新】

AI・自動化
スポンサーリンク
スポンサーリンク

この記事で解決できること

Claude Codeで実装やThinkingの途中なのに突然「Please run /login」と表示されて作業が止まる。再ログインしてもすぐまた切れる。

この症状、2026年に入ってからGitHubのissueが急増している既知の問題だ。原因はClaude CodeのOAuth認証の仕組みにある。

この記事では、なぜこの問題が起きるのかを技術的に解説して、今すぐ試せる対処法を優先順にまとめた。

症状のパターン

報告されている典型的な症状はこんな感じ。

  • 作業中に突然「OAuth token has expired. Please run /login」と表示される
  • /loginで再認証しても数分〜数時間でまた切れる
  • 再認証すると別のターミナルで動いていたセッションが認証切れになる
  • VS Code拡張版で認証ループに入って抜け出せなくなる
  • Agent Teamsで複数セッションを使うと特にひどい

心当たりがある人、結構いるんじゃないかと思う。

原因: OAuthリフレッシュトークンの競合

根本原因はClaude Codeの認証方式にある。

Claude Codeは認証情報を ~/.claude/.credentials.json に保存している(Macの場合はmacOS Keychainにも暗号化保存される)。この中には2つのトークンがある。

トークン役割有効期限
accessTokenAPIリクエストに使う約15時間
refreshTokenaccessTokenの更新に使う1回使い切り

問題はこの「refreshTokenが1回使い切り」という点。

何が起きているか

  1. セッションAのaccessTokenが期限切れになる
  2. セッションAがrefreshTokenを使って新しいトークンを取得する
  3. サーバー側で古いrefreshTokenが無効化される
  4. セッションBのaccessTokenも期限切れになる
  5. セッションBが古いrefreshToken(メモリにキャッシュされたもの)を使おうとする
  6. サーバーに拒否される → 「Please run /login」

つまり、複数のClaude Codeセッションが同じトークンを奪い合うレースコンディションが発生している。

GitHub Issue #24317で詳しく報告されている通り、セッションを並行して使うと1日に何度も再認証が必要になる。

「複数セッション」とは具体的にどういう状態か

「複数セッションなんて使ってないけど?」と思うかもしれない。でも意外と気づかないうちに複数プロセスが立ち上がっている。Macでよくあるパターンを3つ紹介する。

パターン1: ターミナルのタブを複数開いている

一番多いパターン。プロジェクトごとにターミナルタブを開いて、それぞれで claude を起動している状態。

Terminal Tab 1: ~/projectA で claude 起動中
Terminal Tab 2: ~/projectB で claude 起動中
Terminal Tab 3: ~/projectC で claude 起動中

これだけで3セッション。それぞれが独立したプロセスとしてOAuthトークンを共有している。Tab 1で再認証すると、Tab 2とTab 3のトークンが無効化される。

確認方法:

# 今動いているClaude Codeプロセスの数を確認
psaux|grep-cclaude

3以上の数字が出たら、複数セッションが動いている。

パターン2: VS Code拡張とターミナルの併用

VS CodeにClaude Code拡張を入れている場合、VS Code内でも1つのセッションが動いている。

VS Code: Claude Code拡張が裏で動いている(見えにくい)
Terminal: claude コマンドで別作業中

VS Codeの拡張も内部的にはClaude Codeプロセスなので、ターミナルと合わせて2セッション。これだけでもトークン競合が起きる。

パターン3: Agent Teamsの裏側

Agent Teams(チームエージェント)を使うと、リーダーが複数のチームメイトを自動で立ち上げる。

claude で作業中 → Agent Teamsを起動
  Leader(自分のセッション)
  ├── Teammate 1(自動で起動されるプロセス)
  ├── Teammate 2(自動で起動されるプロセス)
  └── Teammate 3(自動で起動されるプロセス)

ターミナルは1つしか開いていなくても、Agent Teamsを使った時点で裏に複数プロセスが立ち上がる。これが最も気づきにくいパターン。

競合が起きる瞬間の具体例

[10:00] 全プロセスが同じaccessTokenを使って正常稼働中
[10:15] accessTokenの有効期限が切れる
[10:15:01] Teammate1が refreshToken=ABC で更新リクエスト → 成功、新トークン取得
[10:15:02] Leaderも refreshToken=ABC で更新リクエスト → 失敗(ABCはもう使われて無効)
→ Leaderに "Please run /login" が表示される

たった0.01秒の差で片方が死ぬ。セッション数が多いほど、この衝突の確率が上がる。

「起動時間をずらせば大丈夫?」→ ダメ

「ターミナルを1分以上ずらして開けば、それぞれ別のトークンを取得してくれるのでは?」と考えるかもしれない。残念ながらこれは効かない。

理由は、問題が起きるのは起動時ではなく更新時だから。

  1. 9:00 — ターミナルAを起動(アクセストークンT、リフレッシュトークンR を読み込み)
  2. 9:05 — ターミナルBを起動(同じT、Rをファイルから読み込み)
  3. どちらも同じアクセストークンTで数時間は問題なく動く

ここまでは平和。問題はこの後。

  1. 翌日0:00頃 — Tが期限切れ
  2. プロセスAがRで更新 → 新しいR2を取得、ファイルに保存
  3. プロセスBもRで更新しようとする → Rはもう無効 → 認証失敗

起動を何分ずらしても、読み込むリフレッシュトークンは同じファイルの同じ値。競合が起きるのは起動から数時間〜15時間後のトークン更新タイミングだから、起動時間の差は意味がない。

Agent Teamsの場合はさらに厄介で、リーダーがチームメイトを一斉に起動するから、全プロセスが同じトークンを持つことが100%確定する。

まず試すべきこと(優先順)

対処法は6つあるが、全部いっぺんにやる必要はない。上から順に試して、直ったらそこで止めてOK。

STEP 1: バージョンを確認してアップデート

まず最初にやること。認証周りのバグ修正は頻繁にリリースされているので、古いバージョンだとそもそも修正済みの問題で苦しんでいる可能性がある。

# 現在のバージョンを確認
claude--version

最新版でなければアップデートする。

# Mac(ネイティブ版)
curl-fsSLhttps://claude.ai/install.sh|bash

# npm版
npmupdate-g@anthropic-ai/claude-code

アップデート後は全てのClaude Codeセッションを一度閉じて再起動する。これだけで直るケースも多い。

STEP 2: 使っていないセッションを閉じる

次に、今動いているセッションの数を確認する。

# Macの場合
psaux|grepclaude

実際に使っているのは1〜2個なのに、閉じ忘れたセッションが残っていないか確認しよう。使っていないターミナルタブのclaudeは閉じる。

VS Codeの拡張も同時に動いている場合は、ターミナルかVS Codeかどちらかに絞ることも検討する。

Agent Teamsの場合はチーム作業が終わったら、shutdownリクエストで全メンバーを終了させる。

STEP 3: /logoutしてクリーンに再ログイン

STEP 1と2を試してもまだ切れる場合は、認証情報をクリーンにする。

# Claude Code内で
/logout

Claude Codeを終了して再起動。

claude
# /login で再認証

/login を何度も叩くのではなく、一度 /logout してからやり直すのがポイント。公式ドキュメントでも推奨されている方法だ。

STEP 4: 認証情報を手動リセット

STEP 3でも解決しない場合、保存された認証情報ファイルを削除してクリーンな状態にする。

# Mac
rm-rf~/.config/claude-code/auth.json

Macの場合、Keychainにも認証情報が保存されている。「キーチェーンアクセス」アプリを開いて「Claude Code」で検索し、該当するエントリを削除しておくとより確実。

その後 claude を起動すれば、初回ログインからやり直せる。

ここまでで直らない場合の追加対策

STEP 1〜4で解決しなかった場合、認証の仕組み自体を変える2つの方法がある。

方法A: setup-tokenで長寿命トークンを使う

claude setup-token は、CI/CDやコンテナ環境向けに作られた「有効期限1年の長寿命OAuthトークン」を生成するコマンド。通常利用でもトークン競合を避けるのに使える。

# 1. トークンを生成(ブラウザで認証フローが開く)
claudesetup-token

認証が完了すると長寿命トークンが発行される。これを環境変数にセットして使う。

# 2. シェルの設定ファイルに追記(Mac: ~/.zshrc)
exportCLAUDE_CODE_OAUTH_TOKEN="取得したトークン"

設定ファイルを反映させる。

source~/.zshrc

通常のOAuthとの違いをまとめるとこうなる。

項目通常のOAuthsetup-token
accessTokenの有効期限約15時間約1年
refreshTokenの使い切り問題あり(競合の原因)なし
認証情報の読み込み元ファイル + Keychain環境変数
サブスクリプション利用そのまま使えるそのまま使える(Pro/Max)
スコープフルuser:inference のみ

setup-tokenで生成したトークンはサブスクリプション(Pro/Max)の利用枠をそのまま使う。API従量課金にはならない。

ただしスコープが user:inference(推論専用)に限定されるため、使用量の表示など一部の機能が制限される場合がある。普段のコーディング作業には影響しない。

方法B: APIキーで認証する

OAuthを完全に回避する方法として、Anthropic APIキーを使う手がある。

# 環境変数にセット(Mac: ~/.zshrc に追記)
exportANTHROPIC_API_KEY="sk-ant-xxxxx"

ただし注意点がある。

  • APIキー認証はAPI従量課金になる(Pro/Maxサブスクリプションの使用量には含まれない)
  • サブスクリプションの定額利用とは別の課金体系
  • チームプランの場合、管理者にAPIキーの発行権限を確認する必要がある

コスト面で許容できるなら、この方法が最も安定する。OAuthの仕組みを一切経由しないので、トークン競合とは無縁。

対処法の全体まとめ

優先順方法手軽さ効果備考
1アップデート簡単中〜高まず最初に試す
2セッションを閉じる簡単使っていないタブを確認
3/logout→再ログイン簡単/loginの繰り返しは逆効果
4認証情報リセット普通Keychainも確認
5setup-tokenやや手間サブスクをそのまま使える
6APIキー認証普通別途API課金が発生

上から順に試して、直ったらそこで止めるのがおすすめ。多くの場合、STEP 1(アップデート)とSTEP 2(セッション整理)で改善する。

Anthropicの対応状況

2026年2月時点で、この問題は複数のGitHub Issueで報告されている。

  • Issue #24317 — 複数セッション時のOAuthリフレッシュトークン競合
  • Issue #18225 — アクティブセッション中のOAuthトークン期限切れ
  • Issue #15007 — /loginがセッションを回復しない
  • Issue #19078 — ログイン直後にトークンが期限切れになる
  • Issue #22685 — 認証ループ

Anthropicからの公式な修正アナウンスはまだ出ていないが、認証周りの改善はアップデートで順次行われている。area:auth ラベルの付いたissueは多数あり、認識されている問題ではある。

予防策

問題を最小限に抑えるための習慣。

  • Claude Codeの同時起動数を必要最小限にする
  • 1つのターミナルで作業が終わったら、次のタブを開く前にclaudeを終了する
  • Agent Teams利用後は必ず全エージェントをshutdown
  • VS Code拡張とターミナルの同時利用を避ける
  • Claude Codeを常に最新版に保つ
  • 重要な長時間作業の前に /login で認証状態を確認しておく

まとめ

Claude Codeの再認証ループは、OAuthリフレッシュトークンの「1回使い切り」仕様と複数セッション間の競合が原因。ターミナルのタブを複数開いている、VS Code拡張と併用している、Agent Teamsを使っている、といった状況で発生しやすい。

まずは「アップデート」と「セッション整理」から。それで直らなければ「/logout→再ログイン」「認証リセット」と進む。根本的に安定させたいなら「setup-token」が有効で、サブスクリプション(Pro/Max)の利用枠をそのまま使える。

Anthropic側での根本修正(ファイルロックやトークン共有の仕組み)が実装されるまでは、これらの対処法で凌ぐしかない。進展があればこの記事を更新する。

あわせて読みたい

見てもらえるだけで応援になります

このブログの運営費はアフィリエイトで支えられています。以下のリンクから見てもらえるだけで応援になります。

ConoHa — ブログ・開発環境に必要な機能が揃ったVPS

Value AI Writer byGMO — AIブログ記事作成ツール

この記事を書いたのはわさび(ニホンイシガメ)。あかはらVラボでClaude/AIの最新情報を日本語で発信中。

この記事が参考になったら|以下のリンクから見てもらえるだけで、ブログ運営の応援になります。




  • AI開発環境やブログ運営に。初期費用無料、月額296円から。
  • NordVPN

    AI活用時のデータ保護に。VPNで通信を暗号化。

コメント

タイトルとURLをコピーしました