Claude Code の settings.local.json の秘密が漏れる理由: その API キー、GitHub に出てない?
「Yes, and don't ask again」を押したそのコマンド、API キーごとファイルに残っているかもしれません。Claude Code で「Yes, and don't ask again」を押すと、そのコマンドは .claude/settings.local.json に書き込まれます。コマンドの中に API キーやパスワードが入っていれば、それも一緒にです。
2026年11月、このファイルが GitHub の公開リポジトリに10万件以上上がっていて、1,122件に本物の秘密が入っていたと報じられました。ふだんは git に入らない仕組みがあるのに、なぜ漏れたのでしょうか? 自分のリポジトリから出ていないかは、どう見分ければよいのでしょうか?
この記事では、ファイルが git から外れる仕組みと外れなくなる場面、履歴に入っていないかの見分け方、入っていたときにすることを、順に書きます。
環境
- macOS 26.6.2
- Claude Code 2.1.309
- Git 2.54.0
- 2026年11月10日に確認
手順
注意点
まとめ
自分の API キーが GitHub に出ていないかは、リポジトリの履歴に .claude/settings.local.json が一度でも入ったかで見分けられます。漏れたのは、このファイルを git から外す設定がリポジトリではなくパソコンの側にあり、その設定がない環境では、ほかのファイルと同じように git に入ってしまうからでした。「Yes, and don't ask again」で許可したコマンドの API キーも、そのまま一緒に公開されます。
まずは自分のリポジトリで git log --all -- .claude/settings.local.json を走らせて、履歴に残っていないかを確かめてみてください。残っていたら、鍵を作り直すのが先です。
参考文献
著書
使い方Orca の権限の初めの設定と直し方: 入れた直後、Claude Code が勝手に起動する
挙動Claude Code の context-mode の使い方: 入れただけでは、実は効いていなかった
使い方Postman が Claude Code と Codex に入れたプラグインの確かめ方: Superset も、開いただけでフックが11個
使い方Claude Code の settings.local.json の秘密が漏れる理由: その API キー、GitHub に出てない?
挙動Claude Code と Codex を並列で動かしたときの動き: worktree で分けたのに、マージで衝突
使い方Claude Code の Stop フックで、終わる前にテストを走らせる手順: テストが通るまで終わらせない
使い方Orca の権限の初めの設定と直し方: 入れた直後、Claude Code が勝手に起動する
検証・比較Orca で Claude Code と Codex を GUI で使う手順: ターミナルだけだった Orca が、チャットの画面で使えるように
挙動Claude Code の context-mode の使い方: 入れただけでは、実は効いていなかった
使い方Postman が Claude Code と Codex に入れたプラグインの確かめ方: Superset も、開いただけでフックが11個
使い方Claude Code の settings.local.json の秘密が漏れる理由: その API キー、GitHub に出てない?
使い方Orca の差分の画面の使い方: エージェントへの指摘、1つずつ送っていない?
