
2026/07/19 1:12
Claude Code を管理するためのスペア Mac の設定:ステップバイステップガイド
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
このガイドは、予備の Mac を遠隔からClaude Codeによって完全に制御される安全で常時稼働するAIワークステーションとして再利用する方法を詳述しています。継続的なAI利用に伴うセキュリティリスクを軽減するため、この方法は主要なコンピュータではなく専用マシンにワークロードを隔離します。プロセスは、対象のMacを初期化してApple IDログインなしでの新しいローカル管理者アカウントを作成することから始まります。主な設定ステップには、パスワード不要の
sudo アクセスを有効にし、ソースマシンからパスワード不要のキーベース認証のためのSSHを設定し、pmset コマンドを使用して睡眠モードを防ぎスクリーンセーバーを無効化することで常時利用可能であることを確保するものが含まれます。さらに、安全なスクリプトを介してクリップボードを同期させ、Claude Codeおよびオプションのツールチェーン(GitHub CLIやPlaywrightなど)を特定のセットアップスクリプトを通じてインストールすることによって環境をカスタマイズします。最後に、ローカルネットワーク上ではスマートフォンから直接、グローバルにはTailscaleを使用してシームレスな遠隔制御が可能となり、デイリードライバーが完全に無害かつ安全に保たれることを確保します。本文
Mac 余剰リソースを活用した常時稼働マシンの構築ガイド
本ガイドは、Claude Code の完全な制御権限とコンピューター操作機能を付与し、使用されていない Mac を「常時稼働マシン(Headless Server)」として変換する方法を説明します。
- 対話方法:メインの Mac から SSH またはスマートフォン上の Claude アプリから利用可能になります。
- リポジトリ版: GitHub Pages での公開記事
背景とメリット
実装の目的
Claude Code に独立した環境を割り当て、メインマシンの個人データに触れないまま研究や開発タスクを委任する仕組みです。
- セキュリティリスクの低減:
フラグを使用する場合、メインマシンで動作させるのは危険です。隔離された専用マシンを設置することでリスクを回避できます。--dangerously-skip-permissions - モバイルからのアクセス:スマートフォンの Claude アプリからいつでも対話可能です。
- モバイル版の通常の Claude よりもClaude Code の方が能力が高く、複数のタスクを処理する際の第 2 の AI アテンダントとして最適です。
システム構成
- ターゲット(Target):設定対象となる余っている Mac。
- ソース(Source):日常的に使用するメインの Mac(同じ Wi-Fi に接続)。
- 備考: この構成はあらゆるマシンの組み合わせで応用可能です。
準備と基本設定
必要なもの
- 余っている Mac(ターゲット)
- 日常的に使用する Mac(ソース):ターゲットと同じ Wi-Fi に接続すること
1. ターゲットマシンのクリーンスタート
エージェントが完全にアクセスできるため、既存データへの到達を防止する必要があります。個人データがある場合はすべて削除してください。
システムの消去方法
- サポート対応モデル:システム設定 → 一般 → 「転送またはリセット」→ **「全コンテンツと設定を消去」**を選択。
- 古い Intel Mac:起動中(Cmd-R)で Recovery モードに入り、ディスクユーティリティで内部ドライブを消去し、macOS を再インストール。
- オプション: 最新の macOS にアップデートしてください。
2. 新しい隔離アカウントの作成
Apple ID のサインインは推奨せず、純粋なローカルアカウントを作成します。
アカウント設定手順
- システム設定 → ユーザーとグループ → **「新しいユーザー」**で追加。
- Apple ID サインインはスキップしてください。
- アカウントを管理者権限にする:
- システム設定 → ユーザーとグループ → 「このユーザーにコンピューターの管理を許可」を設定。
3. ターゲット Mac でリモートログイン (SSH) を有効にする
ソースマシンの接続を可能にするため、ターミナルアプリを実行し以下のコマンドを入力します:
sudo systemsetup -setremotelogin on
エラー対処: 「Remote Login」のオン/オフにフルディスクアクセス権限が必要とのメッセージが出た場合:
- システム設定 → プライバシーとセキュリティ → フルディスクアクセスを開く。
- +ボタンで「アプリケーション」と選択し、
(ユーティリティ) を検索してUtility
を追加します。Terminal - ターミナルを再起動後、再度コマンドを実行してください。
4. パスワードレス sudo の設定
エージェントと SSH コマンドがパスワードプロンプトなしで管理タスクを実行できるよう設定します(一度実行)。
echo "<ユーザー名> ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/<ユーザー名>-nopasswd >/dev/null sudo chmod 440 /etc/sudoers.d/<ユーザー名>-nopasswd sudo visudo -cf /etc/sudoers.d/<ユーザー名>-nopasswd # 構文チェック(parsed OK と出ることが必須)
検証:
sudo -n true を実行し、沈黙で成功すれば正常です。
5. アドレスと接続設定
ターゲットにはホスト名または IP アドレスで到達可能ですが、ホスト名を使用することを推奨します(IP は再起動などで変化する場合があるため)。
ホスト名の取得と設定
- 確認:
scutil --get LocalHostName - 一意性の確保: ネットワーク上の他のマシンの名前と同じにならないよう確認し、必要に応じて変更:
sudo scutil --set LocalHostName newmacbook-name # -> newmacbook-name.local - 接続アドレスの形式:
<ユーザー名>@<ホスト名>.local
IP アドレス(推奨しない):
- コマンド:
ipconfig getifaddr en0 - 再起動や経時変化で変更される可能性があります。
6. ソースマシンでの SSH キー認証設定
ターゲットへのパスワード入力を不要にします。
- ソース: SSH キーの作成と公開鍵をコピー(コマンドは省略)。
- ターゲットへのインストール: 公開鍵をターゲットのアカウントにインストール(一度だけパスワード入力が必要)。
ssh-copy-id <ユーザー名>@<target-host>.local - 接続テスト:
ssh <ユーザー名>@<target-host>.local whoami
クリップボード同期と環境構築
7. SSH クリップボード同期の導入 (clip.sh)
Apple ID やサードパーティサービスを使わず、SSH でクリップボード(テキスト・画像)を暗号化して移動できます。
設定手順
curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/clip.sh -o ~/.local/bin/clip chmod +x ~/.local/bin/clip export IC_BOX="<ユーザー名>@<target-host>.local" # ~/.zshrc に追加
使用例:
clip send(送信)、clip get(取得)。画像も Ctrl-V で貼り付け可能です。
8. Claude Code のインストール
以下のコマンドをターゲットで実行します(ソースマシンから直接コピーして実行しても構いません)。
ssh <ユーザー名>@<target-host>.local 'curl -fsSL https://claude.ai/install.sh | bash -s -- 2.1.201'
PATH の追加: ネイティブインストーラーは
~/.local/bin が PATH にないと警告します。以下のコマンドで修正:
ssh <ユーザー名>@<target-host>.local 'echo '\''export PATH="$HOME/.local/bin:$PATH"'\'' >> ~/.zshenv'
9. オピニオネーテッドな環境設定 (オプション)
シェルエイリアス、DX プラグイン、settings.json などのデフォルト設定を適用します。
インタラクティブモード: チェックリストを表示し、必要な項目のみを選択。
ssh -t <ユーザー名>@<target-host>.local \ 'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/setup-claude-env.sh -o setup-claude-env.sh && bash setup-claude-env.sh'
非インタラクティブモード(フラグ指定):
: すべてインストール--all
: コア機能のみ--core
/--playwright
: それぞれのツールを個別に追加--yt-dlp
ssh <ユーザー名>@<target-host>.local \ 'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/setup-claude-env.sh -o setup-claude-env.sh && bash setup-claude-env.sh --all'
10. ログインと認証
- Anthropic:
で接続し、ssh <ユーザー名>@<target-host>.local
コマンドを実行。ブラウザ/デバイスコードフローに従ってログインします。claude - GitHub(推奨): エージェントがリポジトリを操作できるようインストールし、メインアカウント以外で別の GitHub アカウントを使用する方が安全です。
コンピューター操作とリモート制御
11. SSH を通じたコンピューター操作(オプション)
ターゲット Mac の画面を表示し、マウスやキーボードを操作できる機能です。macOS の制限(GUI ログインセッションへのアクセス禁止)を回避するための特別な設定が必要です。
セットアップ手順
- LaunchAgent と tmux サーバーの導入:
ssh -t <ユーザー名>@<target-host>.local \ 'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/setup-computer-use.sh -o setup-computer-use.sh && bash setup-computer-use.sh' - 権限設定の再発行:
画面録画とアクセシビリティ、フルディスクアクセスを
サーバーに付与します。変更後、サーバーを再起動(tmux
)して適用してください。tmux -S /tmp/cc-tmux.sock kill-server
12. ソース Mac から「ic」コマンドを使用
ソース Mac に
ic.sh をインストールし、以下の操作が可能です。
インストール:
curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/main/ic.sh -o ~/.local/bin/ic chmod +x ~/.local/bin/ic echo 'export IC_BOX="<ユーザー名>@<target-host>.local"' >> ~/.zshrc
主要な ic コマンド:
: 新規セッション作成ic
: 最近の対話を再開ic -c
: ピッカーを再開ic -r
: Chrome 版 Claude の起動ic --chrome
: シェル専用環境ic sh
: スマートフォンからのリモート制御(ic rc
)claude remote-control
,ic history
: セッション管理ic ls
: 特定セッションへの接続ic attach <id>
: セッションの停止ic kill <id>
: すべてのセッションを停止ic kill-all
テキストのコピー: tmux で動作するため、マウス選択でコピーしたものを Terminal に貼り付けると直接クリップボードに反映されない場合があります。
Cmd-A(選択)→Cmd-C(全体画面コピー)でのワークアラウンドが有効です。
13. バス:メイン Mac の Claude がターゲットを駆動
ソース Mac の Claude Code セッションから、ターゲットの tmux サーバーに対して直接プロンプトを送信できます(エージェント対エージェント)。
# ID を確認 ic ls # プロンプト送信と入力シミュレーション ssh <ユーザー名>@<target-host>.local "tmux -S /tmp/cc-tmux.sock send-keys -t <セッションID> 'Switch to main and pull; PR #4 is merged.' Enter" sleep 2 ssh <ユーザー名>@<target-host>.local "tmux -S /tmp/cc-tmux.sock send-keys -t <セッションID> Enter" # レスponse 確認 ssh <ユーザー名>@<target-host>.local "tmux -S /tmp/cc-tmux.sock capture-pane -t <セッションID> -p" | tail -30
14. スマートフォンからの制御
- 既存セッション内:
(または/remote-control
)を実行し指示に従う。/rc - 新規サーバー起動:
コマンドでサーバーを開始する。claude remote-control
を使用すると、画面共有機能も同時に有効になります。ic rc
15. Chrome に Claude を設定(オプション)
ブラウザを制御して操作を行えます(Playwright MCP とは別に、通常の Chrome プロファイルを使用)。
セットアップ手順:
- ターゲットの Chrome に Anthropic 拡張機能をインストールしログイン。
- コマンド
を実行してツールを有効化。/chrome - クイックワークアラウンド: ソース Mac の Chrome から一時アンインストールか、終了させてください。
16. ターゲットの画面共有(オプション)
ソースからターゲットの画面を見ることができます。コマンドラインではなく GUI で設定が必要です。
設定手順:
- ターゲット: システム設定 → 一般 → 共有 → **「画面共有」**をオンにする。(リモート管理も有効にします)。
- ソース Mac から接続:
open vnc://<ユーザー名>@<target-host>.local
ネットワークとセキュリティの拡張
17. VPN のインストール(オプション)
ボックス上で
ic in コマンドを実行し、"Proton VPN をインストール"と指示することで、自動インストールが可能です。認証情報はクリップボード経由で転送し、システムプロンプトを承認する必要があります。
18. どこからでもアクセス可能にする (Tailscale)
.local アドレスは LAN 限定ですが、Tailscale を使用するとピアツーピアの暗号化トンネルで外部からもアクセス可能です。
インストール手順:
# ターゲット側 ssh <ユーザー名>@<target-host>.local 'brew install tailscale' ssh <ユーザー名>@<target-host>.local 'sudo brew services start tailscale' ssh <ユーザー名>@<target-host>.local 'sudo tailscale up --operator=<ユーザー名>' # ソース側 brew install --cask tailscale-app
Tailscale による接続アドレス:
~/.zshrc の IC_BOX を変更:
export IC_BOX="<ユーザー名>@<target-host>" # Tailscale で利用(IP も可能) # export IC_BOX="<ユーザー名>@<target-host>.local" # ローカルネットワークのみ
管理コンソールでの推奨設定:
- デバイス承認: ネットワークへの不正なデバイスの追加を防ぐ。
- キー有効期限の無効化: 約 180 日後にアクセスできなくなるのを防ぐ。
まとめ
このセットアップにより、余っている Mac を以下の機能を持つ常時稼働マシンに変換できます:
- 完全な隔離環境でエージェントを動作させられる。
- スマートフォンからの遠隔操作が可能。
- 画面共有およびリモートキーボード入力をサポートする。
- Tailscaleによりネットワーク制限を超えてアクセス可能になる。
Claude Code とエージェントコーディングをさらに深めたい場合は、ニュースレター「Agentic Coding with Discipline and Skill」への購読も検討してください。