AI活用

Claude Codeにログインできない・401の直し方|画面に触れないMacは1年有効のトークンで復旧【2026年】

編集責任者佐藤翔太株式会社UrakaTA 代表取締役記事はAIが社内の記録から下書きし、別のAIが公式情報で照合、公開後に編集責任者が確認しています。
大きな鍵を抱えた会社員が、机の上のノートPCへ歩いていくイラスト
イラスト:AIで作成

この記事の結論

Claude Codeにログインできない・401のときは、まず/statusでどの認証が効いているかを見て、画面の前なら/loginで入り直します。画面に触れない無人のMacは、claude setup-tokenで発行した1年有効のトークンを環境変数で渡すと動きます。

目次8項目
  1. Claude Codeにログインできない・401は、エラー文で原因が3つに分かれる
  2. /loginで入り直す手順:Claude Codeの画面の前にいるとき
  3. 画面に触れない無人のMacは、claude setup-tokenの長期トークンで動かす
  4. 2026年11月2日、2台目のMacの401を長期トークンで22時に直した記録
  5. 長期トークンでも無言で止まるときは、launchdのPATHと期限を疑う
  6. 業務で使うときの注意:長期トークンは鍵と同じに扱う
  7. まとめ
  8. よくある質問

【無料資料 No.7】「Claude Code、入れて3日で止まってない?」を受け取る →

Claude Codeにログインできない、401が出るというときは、画面の前にいるなら /login で入り直すのが最初の一手です。僕の会社で401が出たのは画面に触れない2台目のMacで、そこは claude setup-token で発行した1年有効のトークンに切り替えて動かしました。

エラー文の見分け方、入り直す手順、無人のMac向けの設定、launchdの下で無言で止まったときの直し方の順に書きます。「ターミナルで入り直せないMacはどうするの?」という方は、3つ目の章から読めます。

Claude Codeにログインできない・401は、エラー文で原因が3つに分かれる

原因は、ログインが切れた・資格情報が取り消されたか無効になった・使える資格情報が無い、の3つです。どれに当たるかは、画面のエラー文でおおむね見分けられます。

ここでいう401とは、サーバーが「この資格情報では通せない」と返したときの番号です。Claude Codeでは、401の後ろに続く文言で中身が変わります。

公式のエラー一覧では、API Error: 401 Invalid authentication credentials の意味を説明しています。資格情報の形は正しいのに、持ち主のアカウントや組織が断られた状態です。

典型は、取り消された資格情報・止められた組織・無効になったアカウントです。公式は、期限切れはこの文言の原因ではないとも書いています。

期限切れのときは、401 OAuth token has expired を含む別の文言になります。取り消されたときは OAuth token revoked · Please run /login です。

Login expired · Please run /login は、保存したログインの更新が断られ、Claude Codeが保存分を消した状態です。入り直すまで、どの依頼も手元で止まります。

claude -p のような非対話の実行では、同じ状態が別の文言で出ます。Failed to authenticate: OAuth session expired and could not be refreshed です。

人が見ていない実行ほど、この1行に気づきにくくなります。ログを残していないと、止まった理由が後から分かりません。

Not logged in · Please run /login は、そもそも使える資格情報が無い状態です。環境変数で認証するつもりなのに、起動したシェルにその変数が渡っていないときもこれになります。

エラー文ごとの状態と最初の一手を、早見表に並べました。

画面の文言状態まず試すこと
Not logged in · Please run /login使える資格情報が無い/login。環境変数で認証するなら、変数が渡っているか確かめる
Login expired · Please run /loginログインの更新が断られ、保存分が消えた/login。無人の実行は、同じ環境で claude を起動して /login
API Error: 401 Invalid authentication credentials資格情報の取り消し、組織やアカウントの停止/status でAPIキーが効いていないか見てから /login を1回
401 OAuth token has expired/OAuth token revoked途中で更新に失敗した、または取り消された/login。長期トークンなら発行し直す

僕なら、まず /status でどの認証が効いているかを見てから /login に進みます。APIキーが効いていると、何度入り直しても同じ401が出るためです。

/loginで入り直す手順:Claude Codeの画面の前にいるとき

画面の前にいるなら、Claude Codeの中で /login を打ち、ブラウザで承認します。公式は、原因が分からないログインの失敗の多くは、ログインのやり直しで直ると書いています。

  1. /status を打ち、どの認証が効いているかを見る(Login の行が Expired — log in again なら期限切れ)
  2. API key の行が使用中なら、unset ANTHROPIC_API_KEY で外す
  3. /login を打ち、開いたブラウザで承認する(開かなければ c でURLをコピーして貼る)
  4. それでも直らなければ、/logout → Claude Codeを閉じる → claude で起動し直してログインする

/login の後も同じアカウントで同じ401が戻るなら、アカウントか組織が止まっています。/status に出るアカウントと組織を確かめ、組織の管理者に戻してもらいます。

ターミナルからは claude auth status でも確かめられます。ログイン済みなら終了コード0、未ログインなら1で終わり、JSONの authMethod に認証の種類が入ります。

ログインの期限が3日以内になると、起動時に Your login expires in 3 days · run /login to renew と出ます。知らせるだけなので、実際に切れるまで処理は止まりません。

何度もログインを求められる場合、公式はパソコンの時計が正しいかを確かめるよう書いています。トークンの検証が時刻に頼っているためです。

別のMacにSSHで入っているときは、ブラウザが手元で開かないことがあります。表示されたURLを手元のブラウザで開き、出てきたコードを Paste code here の欄に貼れば入れます。

ほかのログインまわりのエラーはClaude Codeのエラー一覧と直し方にまとめています。

画面に触れない無人のMacは、claude setup-tokenの長期トークンで動かす

定期実行や claude -p だけで回すMacは、/login の代わりに長期トークンで動かします。公式は、CIやスクリプトなどブラウザでログインできない環境向けに、この方法を案内しています。

長期トークンとは、claude setup-token で発行する1年有効のOAuthトークンです。サブスクで認証するので、Pro・Max・Ultra・Team・Enterpriseのどれかの契約が要ります。

  1. ブラウザを使えるMacで claude setup-token を実行する
  2. 開いたブラウザで承認すると、ターミナルにトークンが表示される(どこにも保存されないので控える)
  3. 動かしたいMacで、そのトークンを環境変数 CLAUDE_CODE_OAUTH_TOKEN に入れてから claude -p を起動する
  4. claude auth status を実行し、終了コードが0か、JSONの authMethod に認証の種類が入っているかを見る

気をつける点は3つあります。1つ目は優先順位で、環境変数 ANTHROPIC_API_KEY があると長期トークンより先に使われます。-p の実行では、キーがあれば確認なしで使われます。

2つ目は --bare です。起動を速くするこのモードは CLAUDE_CODE_OAUTH_TOKEN を読みません。付けるなら、APIキーか apiKeyHelper で認証します。

3つ目は、使える範囲です。長期トークンはモデルへの依頼にだけ使え、Remote Controlのセッションやclaude.aiのコネクタはつなげません。手元に設定したMCPサーバーは動きます。

トークンが切れたり取り消されたりしても、Claude Codeは401の後も同じ値を送り続けます。/status の Auth token の行で確かめ、発行し直して起動し直します。

2026年11月2日、2台目のMacの401を長期トークンで22時に直した記録

僕の会社でも、2026年11月2日の夜に、2台目のMac(定期タスク専用機)で401に当たりました。長期トークンに切り替え、22時に接続を終えています。

その日は、社内のチャットの返信を拾って claude -p を起動する自作の実行係を足していました。知らせに返信すると、2台目のMacがその答えを指示として実行する仕組みです。

実行係のモデルはopusで、1件45分まで・1日15件まで・同時に1本だけに絞っています。

2台のMacの役割分担はClaude Codeを2台のMacで使い分ける方法に書きました。

ところが、2台目のMacはターミナルのログインが失効していて、401で通りませんでした。記録には、入れ直すにはそのMacの画面が要る、と残しています。

記録には「失効・401」とだけ残していて、画面の文言までは控えていません。上の早見表のどの文言だったかは、ここでは書かずにおきます。

画面の前へ行かずに済ませるため、ブラウザでの承認を手元で終えられる長期トークンを選びました。ふだん使うMacで claude setup-token を実行し、発行したトークンを2台目へ送っています。

2台目ではトークンを権限600のファイルに置き、実行係はそのトークンで claude -p を動かします。2026年11月2日22:00に接続が終わりました。

22:01には、最初の1件を本物の claude -p で実行しました。約35秒で終わり、完了の知らせが社内のチャットに届いています。

なお公式には、SSHで入って表示されたURLを手元のブラウザで開き、コードを貼ってログインする手順もあります。この日の記録には、その方法を試した跡はありません。

ログイン切れの401を記事に書くのは2回目です。2026年10月1日にも手元のターミナル版が期限切れで、claude -p が約6秒で終わりました。詳しくはclaude -pとは?に書いています。

長期トークンでも無言で止まるときは、launchdのPATHと期限を疑う

認証が通っても、Macの定期実行の仕組みであるlaunchdから起動した claude -p が、何も言わずに止まることがあります。僕の会社では、原因はPATHの並び順でした。

launchdの下では、PATHの先頭を/usr/binにする

2026年11月2日、実行係をlaunchdの下で動かすと、claude -p が無言で止まりました。PATHの先頭にあったHomebrewのpython3が、セッション開始時に走る自作のフックに選ばれていたのが原因です。

そのpython3がフックの中で書類フォルダ(Documents)に触れ、macOSの許可待ちになり、Claude Codeごと止まっていました。無人の実行では、その許可に答える人がいません。

直し方は、launchdから起動するときのPATHの先頭を /usr/bin にすることでした。そのMacでは /usr/bin/python3 に書類フォルダの許可が出ていたので、フックが止まらずに動きます。

ただし、どのpython3に許可が出ているかはMacごとに違います。別のMacでは、/usr/bin/python3 を直接起動しても読めなかった実測があります。

その実測と書類フォルダの許可の考え方は、Macのlaunchdで定期実行する方法に書きました。

トークンの期限は1年、切れる前に入れ替える

長期トークンは1年で切れます。切れると無人の実行がまた401で止まるので、僕の会社では2027年11月ごろに同じ作業をもう一度する予定です。

実行係には、haikuで1回だけ呼んで認証が通るかを確かめるコマンドも付けました。トークンを入れ替えた直後は、これで通るかを確かめる手順です。

無人のMacで止まらないために、確かめておく項目を並べます。

  • claude auth status の終了コードが0か(1ならログインが無い)
  • authMethod が想定した認証の種類か(公式の値は none・claude.ai・oauth_token・api_key・api_key_helper・third_party)
  • 起動する環境に ANTHROPIC_API_KEY が残っていないか
  • 起動のオプションに --bare を付けていないか
  • launchdから起動するときのPATHの先頭がどこか
  • 長期トークンを発行した日と、1年後の入れ替えの予定

業務で使うときの注意:長期トークンは鍵と同じに扱う

長期トークンは、発行した人のサブスクで認証する1年有効の鍵です。パスワードと同じに扱い、置き場所・費用・チームでの使い方を先に決めておきます。

置き場所は、本人だけが読めるファイルにします。僕の会社でも、2台目のMacでは権限600のファイルに置いています。

長期トークンはサブスクで認証するので、無人の実行もサブスクの枠で動きます。僕の会社の実行係は、1件45分まで・1日15件までと上限を決めています。

APIキーが残っていると、そちらが優先され、請求はAPIの従量課金になります。詳しくはClaude Codeの料金と上限に書きました。

チャットの返信で動く仕組みなら、届いた文面をデータとして扱います。僕の会社の実行係は、知らせの本文に命令が混ざっても従わず、対外送信・支払い・削除は答えで明確に指示されたときだけ行います。

チームでは、管理者が forceLoginOrgUUID でログインを自分の組織に絞っていても注意が要ります。公式によると、claude setup-token はこの設定を見ず、別の組織のトークンを発行できます。

まとめ

  • Claude Codeにログインできない・401のときは、エラー文で「切れた」「取り消された・無効」「資格情報が無い」を見分ける
  • 画面の前なら、/status でどの認証が効いているかを見てから /login で入り直す
  • 画面に触れないMacは、claude setup-token の1年有効のトークンを CLAUDE_CODE_OAUTH_TOKEN で渡す。APIキーの優先と --bare に注意する
  • launchdの下で無言で止まるならPATHを疑う。僕の会社では先頭を /usr/bin にして直した
  • 僕なら、無人で回すMacは最初から長期トークンで動かし、1年後の入れ替えを予定に入れておきます

よくある質問

claude setup-tokenの長期トークンは、いつまで使えますか?

公式ドキュメントでは1年有効のトークンです。Pro・Max・Ultra・Team・Enterpriseのどれかの契約が必要です。僕の会社では2026年11月2日に2台目のMacへ入れたので、2027年11月ごろに発行し直します。

長期トークンを設定したのに401が出るのはなぜですか?

環境変数ANTHROPIC_API_KEYが残っていると、長期トークンより先に使われます。起動に--bareを付けている場合も、長期トークンは読まれません。トークン自体が切れた・取り消されたときは、claude setup-tokenで発行し直して起動し直します。

SSHでつないだMacでも/loginで入り直せますか?

公式には手順があります。ターミナルに出たログイン用のURLを手元のブラウザで開き、表示されたコードを貼り付けます。貼り付けが効かないときは、コードを標準入力から読むclaude auth loginを使います。

引用元・参考にした記事

  1. Authentication出典Claude Code Docs参照
  2. Error reference出典Claude Code Docs参照
  3. CLI reference出典Claude Code Docs参照
  4. Troubleshoot installation and login出典Claude Code Docs参照