ClaudeでLinuxサーバーを安全に管理する
Claude Codeを使ってLinuxサーバーを管理するための設定方法。禁止操作の設定・プロフィール切り替え・セッション開始時の自動状態取得・セキュリティ強化まで解説します。

AIアシスタントの「Claude Code」を使ってLinuxサーバーを管理するための設定をしてみました。ただ使うだけでなく、「Claudeに何をさせるか・させないか」をきちんと決めることで、安心して使える環境を作ることができます。
やったこと
1. Claudeへの「禁止事項」を設定する
Claudeは便利ですが、間違えると取り返しのつかない操作をしてしまう可能性があります。そこでまず、絶対にやってはいけない操作をリストアップして設定しました。
たとえば:
- ファイルをまとめて消す操作(
rm -rf) - ディスクを丸ごと上書きする操作(
dd、mkfs) - パスワードファイルを読む・壊す操作
- 外部からスクリプトをダウンロードしてそのまま実行する操作
- SSH秘密鍵や
.envファイルなどの機密ファイルを読む操作
これは「鍵のかかった引き出し」を作るイメージです。Claudeはその引き出しを開けることができません。
2. 「プロフィール」で使い分けをできるようにする
同じサーバーでも、「Linuxの管理作業をしたい日」と「TypeScriptのアプリ開発をしたい日」では、Claudeに知っておいてほしい情報が違います。そこで、目的別のプロフィールファイルを作りました。
プロフィール名 | 用途 |
|---|---|
| サーバー管理・システム操作 |
| TypeScriptアプリの開発 |
切り替えはコマンド一つです:
~/.claude/switch-profile.sh linux-manager # サーバー管理モード
~/.claude/switch-profile.sh typescript-dev # 開発モード3. Claudeが毎回「今のサーバーの状態」を自動で把握するようにする
Linuxプロフィールには、このサーバーの基本情報(OSの種類・メモリ・ディスクなど)を書いておきました。ただし、メモリの使用量やディスクの空き容量は時間とともに変わります。
そこで、Claudeのセッションが始まるたびに自動でサーバーの現在の状態を取得して更新するように設定しました。毎回Claudeに「今のメモリはどのくらい?」と聞かなくても、最初から把握した状態で会話が始まります。
4. セキュリティの見直し
最初に設定した禁止事項を見直したところ、いくつか抜け穴がありました。たとえば:
curl | bashは防いでいたがbash <(curl ...)>という書き方は防げていなかった- SSHの秘密鍵は保護していたが、SSH設定ファイルや接続履歴は読めてしまった
- コマンド履歴(
.bash_history)にパスワードが残っている場合に読まれる可能性があった
これらを追加で禁止し、より安全な設定にしました。
作成・変更したファイル一覧
ファイル | 種類 | 内容 |
|---|---|---|
| 設定ファイル | 禁止操作リスト・自動フック設定 |
| シンボリックリンク | 現在有効なプロフィールへのリンク |
| スクリプト | プロフィール切り替えコマンド |
| スクリプト | サーバー状態を自動更新するスクリプト |
| プロフィール | Linuxサーバー管理用(固定情報) |
| プロフィール | Linuxサーバー管理用(自動更新あり) |
| プロフィール | TypeScript開発用 |
| メモ | この設定の使い方まとめ |
セキュリティ設定の変更内容
設定 | 内容 |
|---|---|
危険なコマンドの禁止 |
|
遠隔スクリプト実行の禁止 |
|
機密ファイルの読み取り禁止 | SSHキー・パスワードDB・コマンド履歴・ |
バイパスモードの無効化 | 許可設定をスキップするモードを使えないようにした |
まとめ
ClaudeはAIなので、指示した内容を忠実に実行しようとします。だからこそ、「してほしいこと」だけでなく「してはいけないこと」をあらかじめ明確にしておくことが大切です。
今回の設定で、Claudeを便利に使いながら、安全に保つバランスの取れた環境ができました。

Takaaki Yoneda
環境保全、グラフィックデザイン、マーケティングなどプログラミング以外にも幅広い興味を持ったソフトウェアエンジニアです。 最近の趣味は、ボードゲームと登山