【GithubCopilot】本番VPSでGitHub Copilotの自動承認を安全に最適化する方法:2026/2/20

備忘録

— 読み取り系のみ自動化し、破壊系はブロックする設計 —

1. 背景

本番VPS環境で GitHub Copilot Agent を利用すると、

  • sed
  • grep
  • git diff
  • curl
  • ls

のような調査コマンド実行時に毎回

Run bash command? Allow / Skip

の確認が表示される。

調査中心の作業ではこの確認が大きなストレスになる。

しかし、

  • rm
  • sudo
  • pm2 restart
  • git push
  • systemctl

などを誤って実行すれば、本番停止やSEO評価低下につながる。

そこで本記事では、

読み取り系は自動承認
変更・破壊系は必ず手動承認

という安全バランス設計を紹介する。


2. 設定する場所

SSH接続でVPSを操作している場合は、

Ctrl + Shift + P
→ Preferences: Open Remote Settings (JSON)

に記載する。

※ Remote設定にすることで、本番VPS接続時のみ適用される。


3. 推奨設定(本番用)

// ============================================================
// GitHub Copilot 本番VPS用 自動承認設定
// 読み取り・調査系のみ自動承認
// 破壊・変更系は必ず手動承認
// ============================================================

"chat.tools.global.autoApprove": false,

"chat.tools.terminal.autoApprove": {

  // ===== 安全:読み取り・確認系 =====
  "^(ls|pwd|whoami|id|uname|hostname|date)(\\s|$).*": true,
  "^(cat|less|more|head|tail|nl|wc|grep|egrep|fgrep|awk|sed)(\\s|$).*": true,
  "^(find|stat|file|readlink|realpath)(\\s|$).*": true,
  "^(ps|top|htop|ss|netstat|lsof|curl|wget)(\\s|$).*": true,
  "^(df|du|free|uptime)(\\s|$).*": true,
  "^(git status|git log|git diff|git show|git branch|git rev-parse)(\\s|$).*": true,
  "^(node -v|npm -v|pnpm -v|python3 -V)(\\s|$).*": true,
  "^(npm run (check|lint|typecheck|test)(\\s|$).*)": true,
  "^(pnpm (run )?(check|lint|typecheck|test)(\\s|$).*)": true,

  // ===== 危険:削除・変更・デプロイ系 =====
  "^(rm|rmdir|mv|cp|tee|truncate|dd)(\\s|$).*": false,
  "^(chmod|chown|chgrp|setfacl)(\\s|$).*": false,
  "^(sudo)(\\s|$).*": false,
  "^(git add|git commit|git push|git reset|git clean|git checkout|git switch|git merge|git rebase)(\\s|$).*": false,
  "^(npm (i|install|ci|update)|pnpm (add|install|update)|yarn (add|install|upgrade))(\\s|$).*": false,
  "^(systemctl|service|pm2|kill|pkill|nohup)(\\s|$).*": false,

  // その他はすべて拒否
  ".*": false
}

4. 設計思想

4.1 自動承認するもの

  • ファイル閲覧
  • ログ確認
  • Gitの履歴確認
  • ディスク容量確認
  • ポート確認
  • lint/test

つまり「観察行為」のみ。


4.2 ブロックするもの

  • 削除
  • 上書き
  • 権限変更
  • サービス再起動
  • パッケージ変更
  • Gitの書き込み操作

本番では「変更」は必ず人間が確認する。


5. なぜ global.autoApprove を true にしないのか?

"chat.tools.global.autoApprove": true

にすると、

Copilotが生成した全コマンドが無条件実行される。

これは

  • 想定外の rm
  • 意図しない npm install
  • systemctl restart

が起こる可能性を含む。

本番では極めて危険。


6. 運用ベストプラクティス

6.1 本番は「観察専用」

変更は

  • staging
  • deploy script
  • CI/CD

経由で行う。


6.2 Copilotは「診断エージェント」として使う

本番では

調査補助AI

として扱うのが最適。


7. トラブル時の対処

もしAgentが固まったら:

Ctrl + Shift + P
→ Developer: Restart Extension Host

または

Close Remote Connection
→ 再接続

8. まとめ

本番VPSでのCopilot自動承認は、

利便性を上げながらも、破壊を防ぐ設計が重要

完全自動化ではなく、

限定自動化 + 人間の最終判断

が最も安全である。

コメント

タイトルとURLをコピーしました