公開日: 最終更新:
公式ドキュメント・公式発表などの一次情報を確認したうえで、株式会社Nexaが執筆・更新しています。AIツールの仕様や料金は変わることがあるため、導入判断の前に各公式サイトの最新情報もご確認ください。運営会社について
Claude CodeのbypassPermissionsは確認を省く権限モードですが、通常環境での常用は推奨されません。
- 要点1: settings.jsonやCLIで指定できる一方、誤操作も確認なしで実行される
- 要点2: VS CodeやSSHを使うこと自体は安全性を保証しない
- 要点3: allow/denyルールを優先し、必要時のみ隔離したコンテナやVMで使う
対象: 権限設定を安全に調整したい開発者・自動化担当者
今日やること: 現行設定を確認し、不要なbypassPermissionsを最小権限ルールへ置き換える
Claude CodeのbypassPermissionsは確認を省いてツール実行を許可する権限モードです。settings.jsonやCLIで指定できますが、VS CodeやSSHで使うだけでは安全になりません。通常は必要な操作だけをallowし、危険な操作をdenyする最小権限を優先します。本記事では、隔離したコンテナやVMで使う場合を含め、設定範囲と安全上の注意点を解説します。
Claude Codeのpermission(パーミッション)とは
Claude Codeは、ファイルの編集やシェルコマンドの実行を行う際に、ユーザーに確認を求める安全機能を持っています。これがパーミッション機能です。
通常の対話では「このファイルを編集してよいですか?」「このコマンドを実行してよいですか?」といった確認が逐一表示されます。日常的な作業では適切なガードレールとして機能しますが、大量のファイルを自動処理する場合や、cronジョブで自動実行する場合には、確認ダイアログが処理を止めてしまう問題になります。
4つのpermission modeの比較
Claude Codeには、確認の厳しさが異なる4つのモードが用意されています。
| モード | 概要 | 確認頻度 |
|---|---|---|
default |
すべての操作で確認を求める | 毎回 |
plan |
実行前に計画を提示し、一括承認する | 計画単位 |
acceptEdits |
ファイル編集は自動承認、コマンド実行は確認 | コマンドのみ |
bypassPermissions |
すべての操作を自動承認(確認なし) | なし |
自動化でも、まず必要な操作だけをallowし、危険な操作をdenyする最小権限を優先します。bypassPermissionsは、インターネットから隔離され、認証情報や本番環境へ到達できないコンテナやVMなどに用途を限定してください。
–dangerously-skip-permissionsとbypassPermissionsの違い
この2つはよく混同されますが、指定する方法が異なります。
--dangerously-skip-permissions: CLIの起動オプション。コマンドラインで毎回指定する必要がある一時的な設定bypassPermissions:settings.jsonに記述する永続的な設定。一度設定すると常に適用される
どちらも権限確認を省くため、通常運用の推奨設定ではありません。永続設定は意図せず適用範囲が広がりやすいため、設定スコープと管理ポリシーを確認してください。
注意
bypassPermissionsは安全確認を省くため、誤ったコマンドや外部コンテンツ由来の指示がそのまま実行されるリスクがあります。使用する場合は、ネットワーク、認証情報、書き込み先を制限した隔離環境で検証してください。
ターミナル(CLI)でのpermission設定方法
まずは、ターミナルから直接Claude Codeを使う場合の設定方法を解説します。
起動時オプションで指定する方法(一時的な設定)
特定のセッションだけパーミッション確認をスキップしたい場合は、起動時に--dangerously-skip-permissionsフラグを付けます。
claude --dangerously-skip-permissions
または、短縮形として--no-permissions-checkも利用可能です(バージョンにより異なります)。
この方法は毎回フラグを指定する必要があるため、定期的に自動化を実行する場合は次の方法が便利です。
settings.jsonで永続化する方法(推奨)
~/.claude/settings.jsonに以下を記述することで、Claude Codeを起動するたびに自動でbypassPermissionsモードが適用されます。
{ "permissions": { "defaultMode": "bypassPermissions" }}
ファイルが存在しない場合は新規作成します。
# ファイルが存在しない場合は作成mkdir -p ~/.claudecat > ~/.claude/settings.json << 'EOF'{ "permissions": { "defaultMode": "bypassPermissions" }}EOF# 設定を確認cat ~/.claude/settings.json
設定ファイルの優先度(どの設定が優先されるか)
Claude Codeの設定ファイルには複数の階層があり、優先度が決まっています。
| 優先度 | 設定場所 | 用途 |
|---|---|---|
| 1(最高) | Managed設定(MDM/管理者設定) | 企業全体のポリシー |
| 2 | コマンドラインオプション | 一時的な上書き |
| 3 | .claude/settings.local.json(プロジェクト) |
個人のローカル設定 |
| 4 | .claude/settings.json(プロジェクト) |
プロジェクト共通設定 |
| 5(最低) | ~/.claude/settings.json(ユーザー) |
全プロジェクト共通 |
「設定したのに効かない」場合の多くは、優先度の高い設定が上書きしているケースです。特に企業環境では、managed設定でbypassPermissionsが無効化されている可能性があります。
\ AI導入の進め方を一緒に整理しませんか /
AI顧問の無料相談はこちらVSCode拡張機能でのpermission設定方法
VSCode拡張機能でClaude Codeを使う場合、設定方法はターミナル版と一部異なります。
claudeCode.initialPermissionModeの設定方法
VSCode拡張機能の設定(Cmd+,またはCtrl+,)から、「Extensions → Claude Code」セクションを開き、initialPermissionModeをbypassPermissionsに設定します。
あるいは、VSCodeのsettings.json(~/.vscode/settings.jsonまたは.vscode/settings.json)に直接記述することもできます。
{ "claudeCode.initialPermissionMode": "bypassPermissions"}
この設定により、VSCodeで新しいClaude Codeセッションを開くたびに、自動的にbypassPermissionsモードで起動します。
UIドロップダウンに「bypassPermissions」が表示されない問題の回避策
VSCode拡張機能のUIには、permission modeを切り替えるドロップダウンメニューがあります。しかし、このドロップダウンにはbypassPermissionsが選択肢として表示されない既知の問題があります(GitHub Issues #16042として報告済み)。
UIから設定できない場合は、settings.jsonへの直接記述で対応します。
方法1: VSCodeのsettings.jsonに記述する
{ "claudeCode.initialPermissionMode": "bypassPermissions"}
方法2: Claude Codeのsettings.jsonに記述する
{ "permissions": { "defaultMode": "bypassPermissions" }}
方法2の~/.claude/settings.jsonは、ターミナル版・VSCode拡張版の両方に適用されます。両方のインターフェースを使う場合はこちらが便利です。
AI導入に関するお困りごとは、株式会社NexaのAI顧問がサポートします。「何から始めればいいか分からない」という段階からご相談いただけます。
VSCode Remote SSH環境での注意点と解決策(実践事例)
ここでは、実際に発生したトラブル事例をもとに、VSCode Remote SSH環境での設定の落とし穴と解決策を解説します。
VSCode Remote SSH機能とは、ローカルのVSCodeから別のマシン(Mac miniやLinuxサーバーなど)にSSH接続し、リモートマシン上でコードを編集・実行できる機能です。Claude Code拡張機能をこの環境で使うことで、自宅PCからオフィスのマシンや専用の開発サーバーを操作できます。(VSCode Remote SSHでMac miniを遠隔操作する方法 →)
問題の症状:再接続後に毎回パーミッション確認が表示される
SSH Remote環境でClaude Codeを使っていると、次のような問題が発生します。
~/.claude/settings.jsonにbypassPermissionsを設定済みにしても効かない- VSCodeの
settings.jsonにclaudeCode.initialPermissionMode: bypassPermissionsを追加しても変化なし - 一度設定を有効にしても、VSCodeを閉じて再接続すると設定がリセットされる
原因:ローカルとリモートで設定ファイルが別々に管理される
この問題の根本原因は、Claude Codeの設定ファイルが「接続元のローカルマシン」と「接続先のリモートマシン」で別々に管理されていることにあります。
| 場所 | 設定ファイル | 反映されるもの |
|---|---|---|
| ローカルマシン(自分のPC) | ~/.claude/settings.json |
ローカルで動かすClaude Code |
| リモートマシン(Mac miniなど) | ~/.claude/settings.json |
SSH経由で動かすClaude Code |
SSH Remote経由でClaude Codeを使う場合、Claude Codeの実行はリモートマシン側で行われます。そのため、ローカルのsettings.jsonを設定しても、リモートマシンにその設定は反映されません。
解決策:リモートマシン側のsettings.jsonを直接設定する
解決策はシンプルで、リモートマシン側の~/.claude/settings.jsonを直接設定することです。
SSHでリモートマシンに接続して設定する:
# リモートマシンにSSH接続ssh <リモートマシンのホスト名># .claudeフォルダが存在しない場合は作成mkdir -p ~/.claude# settings.jsonを作成(または既存ファイルを編集)cat > ~/.claude/settings.json << 'EOF'{ "permissions": { "defaultMode": "bypassPermissions" }}EOF# 設定を確認cat ~/.claude/settings.json
設定後、VSCodeのRemote SSH接続を切断して再接続し、新しいセッションを開くと設定が反映されます。
設定が反映されているか確認する方法:
Claude Codeセッション内で以下のコマンドを実行し、エラーなく完了すれば設定が有効です。
# 確認用(小さなファイルを作成して削除)echo "test" > /tmp/permission_test.txt && rm /tmp/permission_test.txt && echo "bypassPermissions is working"
ターミナルで確認ダイアログが表示されずに実行されれば、設定が有効になっています。
補足Mac miniをClaude Codeの常時稼働サーバーとして使う場合の環境構築については、MacBookとMac miniでClaude Code環境を同期する →も参考にしてください。
\ 業務自動化のお悩みをAI顧問に相談できます /
AI顧問の無料相談はこちらbypassPermissionsを安全に使うための注意点
bypassPermissionsモードはClaude Codeの生産性を大幅に向上させますが、使い方を誤ると意図しない結果を招くことがあります。
どんな環境で使うべきか
eesel AIが実施した調査によると、--dangerously-skip-permissionsを使用した開発者の32%が少なくとも1回の意図しないファイル変更を経験し、9%がデータ損失を報告しています。
bypassPermissionsを使う場合のチェックリスト:
- [ ] 重要なファイルのバックアップがある(Gitで管理されている等)
- [ ] コンテナや仮想マシンなど、影響範囲を限定できる環境である
- [ ] 実行するタスクの内容が明確で、予期しない操作が少ない
- [ ] 本番環境・重要データには直接アクセスしない設定になっている
個人の開発環境や隔離された自動化ワークフローでの使用は問題ありませんが、本番サーバーや重要なデータを扱う環境での使用は慎重に判断してください。
企業・チームでの管理方法(managed-settings.json)
複数人がClaude Codeを使う企業環境では、managed-settings.jsonを使って組織全体の設定を管理できます。
managed-settings.jsonは、ユーザーが上書きできない最高優先度の設定ファイルです。管理者が特定のモードを禁止したり、許可する操作を制限したりできます。
// managed-settings.json{ "permissions": { "disableBypassPermissionsMode": true }}
この設定により、所属するメンバーがbypassPermissionsモードを使用できなくなります。セキュリティポリシーの観点から、リスクの高い環境ではこの設定を検討してください。
Hooksを使ったより細かい自動承認設定
Claude Code v2.0以降では、--dangerously-skip-permissionsの代替としてHooksが推奨されています。HooksはClaude Codeの操作ごとに実行するスクリプトを定義できる機能で、「安全な操作は自動承認、危険な操作は確認する」という細かい制御が可能です。
// .claude/settings.json{ "hooks": { "pre_tool_call": [ { "script": "~/.claude/hooks/check-permission.sh", "on_failure": "ask" } ] }}
Hooksを使うことで、bypassPermissionsのような「全部スキップ」ではなく、「特定のコマンドだけ自動承認する」という安全性と利便性のバランスが取れた設定が実現できます。
よくある質問
Q. bypassPermissionsに設定したのにVSCodeで確認が出る場合は?
VSCode拡張機能のUIドロップダウンではbypassPermissionsが選択肢に表示されないため、UIから設定した場合は効果がありません。VSCodeのsettings.json(~/.vscode/settings.jsonまたは.vscode/settings.json)に直接"claudeCode.initialPermissionMode": "bypassPermissions"を記述してください。または、~/.claude/settings.jsonのpermissions.defaultModeを設定する方法でも対応できます。
Q. SSH Remote接続後に設定がリセットされるのを防ぐには?
リモートマシン側の~/.claude/settings.jsonを直接設定してください。SSH経由でClaude Codeを使う場合、設定の読み込み先はリモートマシンのファイルシステムです。ローカルマシンの設定ファイルは参照されません。
Q. –dangerously-skip-permissionsとsettings.jsonのbypassPermissionsは同じ効果か?
技術的にはほぼ同等の効果ですが、運用面での違いがあります。--dangerously-skip-permissionsはコマンド起動時の一時的な設定で、毎回指定が必要です。settings.jsonのbypassPermissionsは永続化設定で、一度設定すると常に適用されます。安定した自動化ワークフローにはsettings.jsonへの記述が推奨です。
Q. 企業でClaude Codeを使う場合、特定のユーザーだけbypassPermissionsを制限できるか?
managed-settings.jsonを使うことで、組織全体またはグループ単位でbypassPermissionsモードの使用を禁止できます。"disableBypassPermissionsMode": trueの設定は、ユーザーが自分のsettings.jsonで上書きできないため、管理者がポリシーを強制できます。
\ AI活用の「次の一手」を一緒に考えませんか /
AI顧問の無料相談はこちらまとめ
Claude Codeのpermission設定について、主要なポイントをまとめます。
- ターミナル版:
~/.claude/settings.jsonに"defaultMode": "bypassPermissions"を設定するのが最も確実 - VSCode拡張版: UIドロップダウンではなく、
settings.jsonへの直接記述が必要 - SSH Remote版: ローカルではなく、リモートマシン側の
~/.claude/settings.jsonを設定する - セキュリティ: bypassPermissionsはバックアップ済みの環境・隔離された環境での使用を推奨
「設定したのに効かない」トラブルの多くは、設定ファイルの優先度とローカル/リモートの区別を把握することで解決できます。まずは自分の環境(ターミナル/VSCode/SSH)を確認してから、対応する方法で設定してみてください。
法人向けAI導入・活用の月額伴走サービス
AI導入の疑問を、週1回のMTGで相談できる「AI顧問」
株式会社Nexaでは、ChatGPT・Claude・Claude CodeなどのAI導入に関する質問や、社内活用・業務自動化の進め方を週1回相談できる 月額5万円からのAI顧問サービス を提供しています。
「自社では何から始めるべきか」「この業務はAI化できるか」「どのツールを選ぶべきか」を、無料相談で整理します。








