守るのは3つだけ
セキュリティの話は、始めると際限がありません。最初のうちに本当に要るのは3つです。ここではそれだけ扱います。
- 削除するコマンドは、対象を読んでから許可する
- 鍵とパスワードを、リポジトリに入れない
- 「全部許可」を、意味が分からないうちに使わない
順に見ます。
1. 削除するものだけは、目で確認する
エージェントは本当にファイルを削除できます。とくに rm は、ゴミ箱を経由しません。実行した瞬間に削除され、取り消せません。
だから許可の出し方に、こう差をつけてください。
- 読むだけ(一覧を見る、中身を表示する)— 気楽に許可して大丈夫です
- 書き換える — Gitで守られていれば、戻せます
- 削除する — 何を削除しようとしているか、その1行を読んでから許可してください
読むのはコマンド全体ではなく、対象の部分だけで十分です。見覚えのない場所を指していたら、そこで止めてください。
2. 鍵とパスワードは、リポジトリに置かない
リポジトリというのは、Gitが履歴を記録しているフォルダのことです。前のステップでそれをGitHubに置けるようになったので、中に入れたものは、設定しだいで世界中から見えます。 便利さと危なさが、同時に増えました。
外部サービスを使い始めると、APIキーという長い文字列を扱うようになります。あれはパスワードと同じものです。これがうっかりリポジトリに入り、公開されると——自動で見つけ出す仕組みが世の中にはあります。 気づくのは、たいてい請求が来てからです。
備えは2つです。
.gitignoreに、鍵を書いたファイルを入れておく。 これはGitに「このファイルは記録しないで」と伝える仕組みです。エージェントに「APIキーが入らないように.gitignoreを設定して」と頼めます- リポジトリは、迷ったら非公開で作る。 設定は切り替えられますが、一度公開したものは、見られた前提で考えるしかありません
もし公開してしまったら、削除するだけでは足りません。 削除しても履歴に残りますし、見られた前提で動くべきです。その鍵を無効にして、作り直してください。 これが唯一の確実な対処です。
なお、GitHubの鍵(SSH鍵)は仕組みが別で、秘密鍵は自分のパソコンから出しません。 置き場所やパーミッションが気になったらSSHの基本へどうぞ。
3. 「全部許可」は、最後の手段
承認プロンプトが続くと、必ず「全部許可」に手が伸びます。気持ちは分かります。
でもそのモードは、上の1番を丸ごと外すということです。使うなら、こういう条件が揃ってからにしてください。
- Gitで守られていて、いつでも戻せる
- そのフォルダに、失って困るものが入っていない
- 画面を見ていられる
近道は、全部許可ではなく許可リストを育てることです。よく使う安全なコマンドだけを覚えさせていけば、聞かれる回数は自然に減ります。詳しくは「コマンド承認地獄」との付き合い方に書きました。
「大丈夫です」を、そのまま信じない
もうひとつだけ。エージェント自身の「安全です」という説明も、根拠のない作り話であることがあります。
自信たっぷりに、存在しないオプションや、実在しない公式ページを挙げてくることがあります。ハルシネーションと呼ばれる現象です。
判断が重い場面ほど、出典を求めてください。 「それ、公式のどこに書いてある?URLを教えて」で十分です。URLを示せないなら、その説明は保留にしてください。
アカウント側にも、一度だけ切っておく設定がある
ここまでの3つは、エージェントを手元で動かすときの話でした。それとは別に、AIサービスのアカウント側にも確かめておきたい設定が一つあります。 打ち込んだ内容を学習素材に使わせない設定で、ChatGPT・Claude・Geminiのいずれもデフォルトはオンです。
ステップ3とステップ4で触れた話なので、済んでいれば飛ばして構いません。まだなら『有料AIと契約したら、最初にやることが一つある——「学習させない」設定』に3社それぞれの場所があります。一度切れば、以後は考えずに済みます。
つまずいたら
- 鍵をコミットしてしまった — 履歴から削除する前に、まずその鍵を無効化して作り直す。順番はこちらが先です
- 何が危ないか分からない — 「今から実行するこれ、危ないところある?」と聞けます。ただし上のとおり、答えを鵜呑みにはしないでください
- 怖くて何も許可できない — 練習用の空フォルダに戻ってください。そのフォルダの中身については、失って困るものがありません。 ただしコマンドはフォルダの外にも届くので、削除する操作だけは対象を見てください
ここまで来れば、土台は出来ています
戻せる。漏らさない。止まるべきところで止まる。この3つがあれば、あとは使いながら覚えられます。
次で仮免です。