Claude Codeの「次から聞かない」が、パスワードを漏らす?

2026.11.11

確認画面、読まずに押していませんか?

AIにプログラムを作ってもらっていると、画面に「このコマンドを実行していいですか?」と確認が何度も出ます。そのたびに答えるのが面倒で、つい「次から聞かないで」を押したくなります。

その気持ちはよくわかります。ところがこのボタンが、パスワードを世界中にさらしてしまう入り口になることがあります。2026年11月に、そんな調査結果が報告されました。

この記事では、何が起きるのか、どうすれば防げるのかを、むずかしい言葉をできるだけ使わずに説明します。対象は、AIに頼んでパソコン上でプログラムを作らせるツール「Claude Code」です。

▶ Lステップのお申し込みをお考えの方へ初期設定・全機能の解説動画を無料でプレゼント中受け取り方を見る →

何が起きたのか

2026年11月上旬、セキュリティ会社Apiiroが、公開されている設定ファイルに秘密情報が大量に残っていたと報告しました(The Hacker Newsの報道による)。

調べたのは、GitHub(プログラムを置いて共有するサイト)に公開されていたClaude Codeの設定ファイル104,185件です。そのうち1,122件(約1.1%)に、本物のパスワードやキーが入っていました。

過去の履歴や会話の記録まで含めると、秘密情報は合計2,539件、1,994のリポジトリ(プログラムの保管場所)で見つかっています。設定ファイルの内訳には、データベースのパスワード379件、サーバーへのログイン情報(SSH)43件、AWSのキー23件などがあります。

落ち着いて読んでほしい点が2つあります。

  • 設定ファイル全体の約99%には、秘密情報は入っていませんでした。
  • 見つかった情報が今も使えるかどうかは、調査では確認していません。ただし、通知を受けた1社は「キーは有効だった」と確認したそうです。

つまり「全員が危ない」のではなく、「うっかりすると誰にでも起こりうる」話です。

なぜ漏れてしまうのか

原因は、「次から聞かない」を選んだときの、ツールの動きにあります。

たとえるなら、こんな話です。宅配ボックスを暗証番号で開けたあと、次から楽をしたくて「確認は省略」というメモを作りました。ところが、そのメモに暗証番号まで書いてあり、うっかり掲示板に貼り出してしまった。

実際の流れは、次の4ステップです。

  1. Claude Codeが「このコマンドを実行していいですか?」と聞いてくる
  2. 「Yes, and don’t ask again」(はい、次から聞かないで)を選ぶ
  3. そのコマンドが、一字一句そのまま、プロジェクトの設定ファイル(.claude/settings.local.json)に保存される
  4. この設定ファイルをGitHubに上げると、中身も一緒に公開される

ここで大切なのは、保存されるのが「コマンド」だという点です。設定ファイルにもともとあるパスワードを覚えるわけではありません。コマンドの中にパスワードが書かれていたとき、それがコマンドごと残ってしまいます。

Claude Codeは、このファイルがGitHubに上がらないようにする工夫もしています。ただ、その保護は自分のパソコンの中だけです。すでに上げたファイルや、別のパソコンに取り込んだフォルダには効きません。プロジェクトの .gitignore(上げないものを指定するリスト)にも、自動では追加されません。

確認画面の見方

確認画面には、1・2・3の選択肢が出ます。表示は環境やバージョンで多少違うことがありますが、意味は同じです。

選択肢 意味 保存されるもの
1. Yes 今回だけ許可する 何も保存されない
2. Yes, and don’t ask again 次から確認なしで許可する コマンドが、そのまま保存される
3. No 実行を断る 何も保存されない

NGの例 コマンドの中に、パスワードの値が見えています。この画面では、必ず「1. Yes」を選びます。

psql -h example.com -U user --password=MyS3cret!

(「MyS3cret!」はダミーのパスワードです)

OKの例 見えているのは、変数名(「$」で始まる名前)だけです。値は書かれていないので、「2」を選んでも、保存されるのは名前だけです。

curl -H "Authorization: Bearer $MY_API_KEY" "$MY_API_URL/..."

パスワードと関係のない普通のコマンド(ファイルの一覧を見る「ls」など)なら、「2」を選んでも問題ありません。迷ったら「1」にしておけば、安全です。

今日からできる3つの対策

覚えることは、3つだけです。

① パスワードやキーの値を、コマンドに直接書かない。 代わりに「変数」を使います。変数とは、値につけた「名前」のことです。名前で呼べば、コマンドにも確認画面にも、見えるのは名前だけで、値は表に出ません。

AIに頼むときは、「パスワードやキーは、値を直接書かず、環境変数 $DB_PASSWORD のように名前で指定して」と伝えます。

値の登録は、Macなら次の手順です。ホーム直下の ~/.zshrc というファイルの末尾に、次の1行を足して、ターミナルを開き直します。

export DB_PASSWORD="your-value-here"

「your-value-here」の部分には、実際の値を入れます。~/.zshrc はプロジェクトの外にあるので、GitHubには上がりません。

② 確認画面で値が見えたら、「2」を選ばない。 迷ったら、1回だけの「1. Yes」にします。

③ 設定ファイルを、GitHubに上げない。 プロジェクトの .gitignore に、次の1行を足します。

.claude/settings.local.json

AIにGitHubへの保存(コミット)を任せたときも、要注意です。調べられた1,105のリポジトリのうち539件では、このファイルを変更したコミットに、Claudeが共同作成者として入っていました。

自分のパソコンを確認する

危ないファイルがすでにないかは、1分で確認できます。Macの「ターミナル」を開き、次のコマンドをコピーして実行します。

find ~ -path "*/.claude/settings.local.json" -not -path "*/node_modules/*" 2>/dev/null | while read f; do n=$(grep -ciE 'password|passwd|token|secret|api[_-]?key|bearer|authorization|AKIA|sk-|ghp_' "$f"); echo "$n  $f"; done

表示されるのは、数字とファイルの場所だけです。パスワードの値は出ません。結果の見方は次のとおりです。

  • 0のファイル: 問題なしです。何もする必要はありません。
  • 1以上のファイル: 中身を開いて確認します。「API_KEY」のような名前だけなら問題ありません。パスワードやキーの値そのものが入っていたら、その行を削除します。

ファイルは「.claude」という隠しフォルダの中にあります。Finderでは、「Cmd + Shift + .」を押すと隠しフォルダが表示されます。

もしGitHubに上げてしまったら

最優先は、パスワードやキーの「再発行(変更)」です。ファイルを消すだけでは足りません。GitHubには変更の履歴が残り、コピー(フォーク)にも残るからです。

次の順番で進めます。

  1. パスワードやキーを再発行(変更)する
  2. 管理者に連絡する(どのプロジェクトで、何を上げたかを、わかる範囲で伝える)
  3. そのあとで、ファイルを管理の対象から外す

3つ目は、次のコマンドでできます。ファイルを消すのではなく、「Gitで追いかけるのをやめる」という意味です。

git rm --cached .claude/settings.local.json

順番が大切な理由は、先にパスワードを変えてしまえば、履歴に古いパスワードが残っていても使えないからです。

まとめ

覚えておくのは、次の3つです。

  • 値は直接書かず、「$変数名」で呼ぶ
  • 確認画面で値が見えたら、「2」を選ばない(迷ったら「1」)
  • 設定ファイル(.claude/settings.local.json)を、GitHubに上げない

「次から聞かない」ボタンそのものは、作業を楽にしてくれる便利な機能です。仕組みを知って、パスワードを直接書かない習慣をつければ、安心して使い続けられます。

出典

Lステップのお申し込み特典:初期設定と全機能の解説動画を無料で受け取る

業種別LINE公式アカウント40選
業種別の事例40選を大公開!
自社企業の同業種のLINE運用を知りたい場合は、
大ボリュームの資料を5秒でダウンロードしてください
事例集をダウンロード
料金表付きサービス概要資料
600社以上を支援してきたマーケリンクの
サービス概要や料金表が分かりやすく記載された資料が
5秒でダウンロードいただけます。
     サービス概要資料をダウンロード
L
I
N
E
登
録
資
料
ダ
ウ
ン
ロ
|
ド