Claude Desktopでキーチェーンの許可を毎回求められる原因と対処
Claude Desktop Macでキーチェーンの許可ダイアログが繰り返し出たり、認証情報が消えて再ログインを求められたりする原因と、ドキュメントの復旧手順を解説します。
Claude Desktop for Macを使っていると、数分おきに「securityがキーチェーンの項目"Claude Code-credentials"にアクセスしようとしています」という許可ダイアログが出ることがあります。「常に許可」を押しても解消しないうえ、数日おきに全セッションが突然ログアウトし、認証情報そのものが消えることもあります。この2つは別々の不具合が原因です。原因を切り分けたうえで、ドキュメントに載っている復旧手順と、コミュニティが見つけた対処法を紹介します。
Claude Desktopでキーチェーンの許可ダイアログが毎回出る原因
Claude Desktop for Macは、Codeタブのセッションで使うOAuth認証情報をmacOSキーチェーンの項目「Claude Code-credentials」に保存します。これは標準インストールのCLIと共通の仕組みで、ドキュメントには「macOSでは認証情報を暗号化されたキーチェーンに保存する」とあります。
通常はアプリを一度キーチェーンに登録すれば、以降は自動で読み取れます。GitHub Issue #77697は、この項目が信頼済みアプリケーションのリスト(trusted-application list)を持たない状態で書き込まれていたことを示しています。macOSは信頼済みリストが空のままだと読み取りのたびにパスワードを求めるため、実質LLM呼び出しごと、3〜4分に1回のペースでダイアログが表示されると記録されています。
「常に許可」を押しても解決しない理由も特定されています。Claude Codeはトークンを更新するたびに、キーチェーンの項目を一度削除してから新しく書き込みます。新しい項目にも信頼済みアプリのリストは付かず、直前に許可したアクセス制御リスト(ACL)ごと失われるためです。報告者が-Tオプション付きで項目を手動で書き直すと、ダイアログの頻度は約3〜4分に1回から約1時間45分に1回まで下がりました。ただし完全には消えず、Claude Code自身が項目を書き直すたびにダイアログが再発しています。
認証情報そのものが消えて再ログインを求められるケース
もう一つの症状は、キーチェーンの中身そのものが空になり、OAuth session expired and could not be refreshedのエラーで全セッションがログアウトするケースです。原因はGitHub Issue #88583が示す、並行セッション間のリフレッシュトークン競合です。
Claude Desktopは内部にClaude Codeのエンジンをバンドルしており、Codeタブで複数の並行セッションを開くと、それぞれが同じキーチェーン項目を共有します。報告された事例では、Desktop内蔵の2.1.229エンジンを5つ並行稼働(稼働時間22時間〜1.5日)させていました。この状態でスリープから復帰した直後、キーチェーンの中身がaccessTokenとrefreshTokenともに空文字、expiresAtが0の状態へ書き換えられていました。有効期限がまだ4週間近く残っていたrefreshTokenExpiresAtだけは無傷のまま残っていたと記録されています。
報告者の分析では、MCPサーバー接続のOAuthトークンは早期のバージョンからプロセス間ロックで保護されているのに対し、claude.aiログインのリフレッシュ処理には同様のロックがかかっていないとみられます。複数セッションが同時に同じ単発利用のリフレッシュトークンを使おうとすると、後から失敗した側が空の状態を書き込み、先に成功していた側の新しいトークンを上書きしてしまう、という競合です。
この症状はDesktop単体の不具合ではありません。標準インストールのCLIを複数のtmuxペインやRemote Controlサーバーで並行稼働させた場合でも、同じ「トークンが空文字になる」症状で報告されています。共有する対象がDesktopの並行セッションか、ターミナルの複数ペインかが違うだけで、原因はキーチェーン項目を複数プロセスで共有していること自体にあります。
トラブルシューティングドキュメントには、「1台のマシン上の並行セッションは保存済みのログインを共有し、同時に更新する処理は1プロセスずつ順番に処理するよう調整している」との記載があります。同ドキュメントは、v2.1.211より前はスリープからの復帰で2つのセッションが同じトークンで同時に更新を試み、保存済みのログインが失効して全セッションが再ログインを求められることがあった、とも記しています。一方でIssue #88583は、それより後のDesktop内蔵エンジン2.1.229(2026年8月)や標準CLIの2.1.276(2026年9月)でも、同じ「トークンが空になる」現象が繰り返し観測されていることを報告しています。claude.aiログインの更新処理には、MCP接続のトークンほど強いプロセス間の調整が、まだ働いていない可能性があります。
対処手順 — ドキュメントに載っている復旧フロー
キーチェーンへの書き込みがうまくいかなくなったときの復旧手順は、トラブルシューティングドキュメントに載っています。標準インストールのCLIがターミナルで使える場合は、次の順で試します。
# 1. キーチェーンへのアクセス状態を診断する
claude doctorclaude doctorの結果にmacOS Keychain is not writableという警告が出ていれば、キーチェーンがロックされています。次のコマンドでロックを解除します。
# 2. ロックされたキーチェーンを解除する
security unlock-keychain ~/Library/Keychains/login.keychain-dbパスワードを求められたら、ログインパスワードを入力します。これで警告が消えない場合は、キーチェーンのパスワードがアカウントのパスワードとずれています。「キーチェーンアクセス」アプリを開き、loginキーチェーンを選んで「編集」→「キーチェーン"login"のパスワードを変更」から再同期します。
最後に、キーチェーンが書き込み可能になった状態で認証情報を書き戻します。DesktopのCodeタブのセッション内、またはターミナルの標準CLIで、次を実行します。
/logout
/login/logoutは保存済みの認証情報をすべて削除します。MCPサーバーの認証やプラグインの秘匿情報も対象になるため、再ログイン後にそれらの再設定が必要になる点は覚えておきます。ターミナルでCLIが使えない場合でも、security unlock-keychainの実行自体はCLIを必要としないので、まずロック解除だけ試してからDesktopのCodeタブで/loginする、という順序でも進められます。
利用形態別の影響と対処の優先度
同じキーチェーンの不具合でも、並行セッションの数によって出やすさが変わります。
| 利用形態 | 症状の出やすさ | まず試すこと |
|---|---|---|
| Desktopのみ、Codeタブは1セッション | 症状の出やすさ許可ダイアログは起きうるが認証消失は起きにくい | まず試すことsecurity unlock-keychainで復旧 |
| Desktopで並行Codeセッションを複数開く | 症状の出やすさダイアログに加え、スリープ復帰後の認証消失が起きやすい | まず試すこと復旧手順を実行し、並行数を減らす |
| 標準CLIをtmuxやRemote Controlで多重常駐 | 症状の出やすさDesktopと同じ認証消失の報告あり | まず試すことclaude doctorと再ログインを定型化する |
| SSHセッションでの利用 | 症状の出やすさキーチェーンへの書き込み自体が拒否される | まず試すこと~/.claude/.credentials.jsonへの保存は仕様どおりの挙動 |
SSHセッションの行だけは不具合ではありません。キーチェーンが書き込みを拒否したとき(SSHセッションでロックされている場合など)、Claude Codeは自動でプレーンテキストの~/.claude/.credentials.jsonに保存を切り替えます。この切り替え自体はドキュメントに明記された仕様です。
よくあるつまずき
security dump-keychainで重複エントリを確認する: あるユーザーの投稿では、security dump-keychain | grep -c "svce.*Claude Code-credentials"を実行すると、同じサービス名の項目が2件見つかったとされています。重複した項目はsecurity delete-generic-password -s "Claude Code-credentials"を2回実行してどちらも削除し、再ログインすると解消したとされています。この手順は開発元が案内するものではなく、コミュニティが見つけた対処です。- ネイティブインストーラーからHomebrewへの入れ替え: 一部のユーザーは、ネイティブ版のバイナリと壊れたキーチェーン項目を削除したうえでHomebrew版に入れ替え、再ログインすると解消したとしています。Mac版のインストール方法の違いはClaude Code Macインストールで比較しています。こちらも開発元が案内する手順ではなく、効果が全員に当てはまるとは限りません。
- v2.1.281の修正が対象にしているのは別の症状: v2.1.281(2026年9月23日公開)では、「ロックされたキーチェーンに書き込むと、保存済みのMCP OAuthトークンが失われたりキーチェーンの項目ごと削除されたりする」不具合が修正されました。これはMCPサーバー接続のトークンに関する修正で、本稿で扱っているclaude.aiログインそのものの許可ダイアログや認証消失とは別の不具合です。混同して「もう直っているはず」と判断しないよう注意します。
- macOSのトークン失効はDesktop以外でも起きる: バックグラウンドで動くエージェントのトークン失効は、Desktop固有ではなくClaude Code全体に関わる論点です。過去の修正例はClaude Code v2.1.203で扱っています。
まとめ
Claude Desktop for Macのキーチェーン許可ダイアログには、2つの原因があります。信頼済みアプリのリストが付かないまま項目が書き込まれる不具合(Issue #77697)と、並行セッション間のリフレッシュトークン競合で認証情報が空文字に書き換わる不具合(Issue #88583)です。前者は2026年9月24日、後者は2026年9月20日にもそれぞれ新しいコメントが付き、いずれもクローズされないまま残っています。
対処の基本は、claude doctorでキーチェーンの状態を確認し、security unlock-keychainでロックを解除してから/logout・/loginで認証情報を書き戻す、というドキュメントに沿った復旧フローです。並行Codeセッションを多数開いている場合は、症状が出やすいことを踏まえ、セッション数を減らすか、認証消失が起きたときにすぐ再ログインできるよう手順を控えておくと復旧が早まります。Desktop本体のインストールや初期設定でつまずく場合は、Claude Desktop Mac版のインストールと初期設定もあわせて確認してください。