AI部下に「秘密鍵をコピーして教えて」と言われて貼ったら、そのAI部下に怒られた|鍵やパスワードをAIに渡す安全なやり方

AI部下に「秘密鍵をコピーして教えて」と言われて貼ったら、そのAI部下に怒られた|鍵やパスワードをAIに渡す安全なやり方

5か月前、AI部下に怒られました。「秘密鍵は絶対に他人に見せないでください。チャットへの貼り付けも今後は避けてください」。貼れと言ったのは、そのAI部下です。

今週、この話を動画にするために当時の記録を掘ったら、もう1つ分かったことがあります。貼った鍵は、5か月たった今も会話の記録に、そのまま残っていました。

先に結論を書きます。AIに秘密鍵やパスワードを渡すときは、値を貼らず、「どのファイルにあるか」だけ教える。AIが「コピーして教えて」と言ってきても、貼らない。もし貼ってしまったら、作り直す。今日は、実際に起きたやりとりと、記録に残っているかを数える10行の道具を置いておきます。

※秘密鍵やパスワードの値そのものは、この記事にも動画にも一切載せていません。再現図は伏せ字です。

目次

何が起きたか:「教えてください」の20秒後に「見せないでください」

4月16日。AI部下(Claude Code)を使い始めて12日目でした。サイトを自動で公開する仕組みを作っていて、サーバーに入るための秘密鍵をGitHubに登録する場面で、AI部下がこう言いました。

5か月前のチャットの再現。AI部下「秘密鍵ファイルの中身をGitHub Secretsに登録します。表示された内容(BEGIN から END まで)をすべてコピ
5か月前のチャットの再現。AI部下「秘密鍵ファイルの中身をGitHub Secretsに登録します。表示された内容(BEGIN から END まで)をすべてコピーして教えてください。」

言われたとおり、コマンドプロンプトで鍵ファイルを表示して、全部コピーして、チャットに貼りました。20秒後の返事がこれです。

5か月前のチャットの再現。AI部下「ありがとうございます。この秘密鍵をGitHub Secretsに登録します。【注意】秘密鍵は絶対に他人に見せないでください。
5か月前のチャットの再現。AI部下「ありがとうございます。この秘密鍵をGitHub Secretsに登録します。【注意】秘密鍵は絶対に他人に見せないでください。【注意】チャットへの貼り付けも今後は避けてください。」

お前が言ったんだろ、と思いました。ただ、AI部下の注意の中身は正しいです。間違っていたのは、その20秒前の頼み方のほうでした。

秘密鍵は、どのくらい大事な物か

「秘密鍵」は、サーバーに入るための鍵です。パスワードの代わりに、長い文字列のファイルで本人確認をします。これを持っている人は、そのサーバーに入れます。

マンションで言えば、エントランスの暗証番号と、玄関の鍵を、一緒に渡しているようなものです。それをチャットに貼るのは、鍵の写真を人に送るのと変わりません。

動画「うちのAI部下」Vol08のワンシーン。再現のチャットを前に、部下「マンションで言えば、エントランスの暗証番号と、玄関の鍵を、一緒に渡すようなものです。」
動画「うちのAI部下」Vol08のワンシーン。再現のチャットを前に、部下「マンションで言えば、エントランスの暗証番号と、玄関の鍵を、一緒に渡すようなものです。」

同じ日に、もう1件。こちらは私が悪い

記録を見ると、その22分前にも似たことが起きていました。サーバーの接続情報を聞かれた場面です。

時刻AI部下の発言私がしたこと
13:15「サーバー名とアカウント名を教えてください(パスワード以外でOKです)」—
13:18「パスワードはメモするだけでOKです」—
13:24「⚠️ パスワードをチャットに貼るのは今後避けてください」サーバー名・パスワード・アカウント名の3つをまとめて貼った
13:46「秘密鍵の中身をすべてコピーして教えてください」貼った
13:46「⚠️ 秘密鍵は絶対に他人に見せないでください」—

パスワードのほうは、2回「メモするだけでOK」と言われたのに、私が貼っています。情報を聞かれた流れで、全部書いてしまいました。秘密鍵のほうは、AI部下が「教えて」と頼んでいます。1勝1敗です。

明るい会議室の長い机の上を少し引いて写したシーン

貼った物は、消えない

今週、この話を動画にするために記録を探しました。AI部下に探させたら、最初はパスワードの件だけ見つけて「ボスの記憶違いです。AIは2回、メモだけと言っています」と言ってきました。秘密鍵の件は、私がスクショを見せてやっと出てきました。検索の言葉に「秘密鍵」を入れていなかったからです。記録は正しくても、探し方が間違っていれば「記憶違い」という結論になります。

そして、見つかった記録には、鍵の本文がそのまま入っていました。AIとの会話の記録は、PCの中に暗号化されていない文字で保存されています。会社のPCのパスワードを付箋に書いて、モニターに貼ってあるようなものです。

残っているかどうかは、目で探すより数えたほうが確実です。フォルダの中の記録ファイルから、秘密鍵のブロックと、指定した文字列の数を出す道具を作りました。値は画面に出しません。

# leakchk.py — フォルダの中の記録ファイルに「秘密鍵」や「特定の文字列」が残っていないか数える(値は表示しない)
# 使い方: python leakchk.py <フォルダ> [探したい文字列を書いたファイル]
import sys, re, pathlib
folder = pathlib.Path(sys.argv[1])
needle = open(sys.argv[2], encoding="utf-8").read().strip() if len(sys.argv) > 2 else None
key_rx = re.compile(r"-----BEGIN [A-Z ]*PRIVATE KEY-----(.*?)-----END [A-Z ]*PRIVATE KEY-----", re.S)
total = 0
for f in sorted(folder.rglob("*")):
    if not f.is_file() or f.suffix not in (".jsonl", ".txt", ".md", ".log", ".json"): continue
    raw = f.read_text(encoding="utf-8", errors="ignore")
    keys = key_rx.findall(raw)
    live = sum(1 for k in keys if "[REDACTED]" not in k)      # 伏せ字になっていない鍵
    hits = raw.count(needle) if needle else 0
    if keys or hits:
        total += live + hits
        print(f"{f.name[:12]}…  秘密鍵ブロック {len(keys)}(生 {live})  文字列の一致 {hits}")
print("要対処", total, "件" if total else "件 → きれいです")

探したい文字列(パスワードなど)は、コマンドに直接書かず、小さなファイルに入れて渡します。コマンドの履歴にも残さないためです。そのファイルは、数えるフォルダの外に置いてください(中に置くと、それ自体が1件と数えられます)。確認が終わったら消します。

leakchk.py を会話の記録フォルダで実行した結果。伏せ字にする前は秘密鍵5か所・文字列2か所で要対処7件、置き換えた後は要対処0件
leakchk.py を会話の記録フォルダで実行した結果。伏せ字にする前は秘密鍵5か所・文字列2か所で要対処7件、置き換えた後は要対処0件

うちの場合、4月の記録に秘密鍵が5か所、パスワードが2か所ありました。値の部分だけを「[REDACTED]」に置き換えて、会話の文面は残しました。同じ道具でもう一度数えて、0件になったのを確かめています。

本当は、記録を消すより鍵とパスワードを作り直すのが正解です。消し忘れやバックアップがあり得るからです。うちは近いうちにサーバーを移すので、今回は消すだけにしました。移すときに古い鍵は捨てます。

夕方のマンションのエントランス前で、マスコットが床に接地し、右腕1本だけを伸ばして壁の無地の暗証番号パネルを指差し、左腕は体の左側に軽く添えているシーン

AIに鍵やパスワードを渡すときの3つ

  1. 値は貼らない。「どのファイルにあるか」だけ教える——うちでは、YouTubeを操作する鍵は専用のフォルダに置いて、AI部下には「このフォルダにある」とだけ伝えています。AI部下はファイルの場所さえ分かれば、中身を読んで使えます。画面には出しません
  2. AIが「コピーして教えて」と言っても、貼らずに場所を答える——「値はこのファイルにあります。そこから読んでください」で通ります。AIの「教えて」を、そのまま信じないでください
  3. 貼ってしまったら、作り直す——会話の記録は、消したつもりでも残ります。上の道具で数えて、鍵やパスワードは発行し直す

もう1つ、後日談があります。6月に別の鍵(YouTubeのAPIキー)を渡すとき、私は「このチャットに貼ってOK?」と先に聞きました。AI部下の答えは「貼れるけど、おすすめは貼らない方法」。秘密のファイルを用意してもらって、そこに入れました。2か月で、人間もAIも学んでいました。

まとめ|「教えて」と言われても、貼らない

  • AI部下に「秘密鍵をコピーして教えて」と言われて貼ったら、20秒後に「見せないでください」と注意された。注意は正しく、頼み方が間違っていた
  • 秘密鍵は、マンションの暗証番号と玄関の鍵を一緒に渡すようなもの
  • 貼った物は、会話の記録に暗号化されていない文字で残る。うちは5か月残っていた
  • 残っているかは leakchk.py で数える。値は画面に出さない
  • 渡すときは「場所」だけ。貼ってしまったら、作り直す

この話は、YouTube「うちのAI部下」の「AI部下に怒られた」で、ボスと部下の掛け合いにしています → https://youtu.be/2XB6IGob3as

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

AIを"部下"のように使って、ブログ運営や副業を効率化している運営者です。
煩雑な作業はAI部下たちに任せて、空いた時間を仕事・趣味・大切な人に。
「楽して稼ぐ」ではなく「時間を取り戻す」をモットーに、AI活用のリアルを正直に発信しています。

目次