AI Development

Claude Code 遠隔Mac導入:2026年SSH手順

Claude Code 遠隔Mac導入:2026年SSH手順

Claude Codeの公式要件には、macOS 10.15以上、Node.js 18以上、4GB以上のメモリ、認証とAI処理に必要なインターネット接続が含まれます。公式セットアップ手順を満たせるなら、Xcode、Simulator、KeychainなどmacOS専用ツールを使うプロジェクトは、独立した遠隔Mac開発ノードへ置くのが適切です。純粋なクロスプラットフォーム開発なら、macOSのためだけに費用を増やす必要はありません。

この記事の勝者は、macOS専用の依存関係がある開発案件に限った、独立アカウント+SSH鍵+プロジェクト権限+復旧可能なセッション構成です。ログイン直後にClaude Codeを起動するだけでは、資格情報の漏えい、過剰なファイル権限、切断時の作業消失を防げません。

WindowsまたはLinux環境からmacOS専用のプロジェクトを扱う開発者、ローカルのMacとAI作業を分離したいモバイル開発者、チーム向けに再現可能で回収しやすい開発ノードを整備するプラットフォームエンジニアが対象です。

最終更新:2026年8月17日。インストール、認証、権限、サンドボックス、ターミナル設定は公開日に公式資料を再確認してください。

導入判断:macOS専用依存か、通常の開発か

最初に、リポジトリの依存関係を一覧化します。次の項目が1つでも必須なら、遠隔Macへ配置する理由があります。

  • Xcodeまたはxcodebuildによるビルドが必要
  • iOS Simulator、macOS Simulator、実機署名を使う
  • macOS Keychain、証明書、Provisioning Profileに接続する
  • Apple固有のSDK、Swift、Objective-C、Metalを使う
  • macOS上でしか成立しない検証スクリプトがある

一方、Node.js、Python、Go、一般的なWeb API、Linux互換のテストだけなら、既存のWindows、Linux、または通常のLinuxサーバーで足ります。遠隔Macを用意しても、ビルド対象がmacOS専用でなければ、接続遅延、認証管理、利用料金という追加コストだけが残ります。

遠隔Macと既存環境の比較

選択肢 向いている案件 主な利点 先に確認する欠点
既存のWindows・Linux クロスプラットフォームのコード、API、一般的な自動化 既存環境をそのまま使える XcodeやKeychainは代替できない
仮想macOS環境 短時間の検証、隔離された実験 スナップショットを作りやすい Apple固有機能、GPU、署名、運用条件に制約が出やすい
独立した遠隔Mac iOS、macOS、Xcode、Simulator、署名を含む開発 実機に近いmacOS環境を継続利用できる SSH、アカウント、資格情報、スリープ、復旧設計が必要
ローカルMac 毎日GUI操作し、物理機器も扱う開発 画面操作と周辺機器を直接使える 本体費用、保守、専有が必要

SSH基盤:接続成功ではなく診断可能な状態へ

macOSでは「システム設定」から「一般」→「共有」→「リモートログイン」を開き、SSHアクセスを有効にします。Appleの案内では、アクセス対象を「すべてのユーザ」ではなく、指定したユーザだけに絞れます。Apple公式のリモートログイン手順でも、SSHとSFTPの利用、許可ユーザの限定、完全ディスクアクセスの扱いが説明されています。

専用アカウントは、管理作業用アカウントと分けます。例では実在しないホスト名、ユーザ名、パスを使います。

ssh-keygen -t ed25519 -f ~/.ssh/claude-mac-ed25519
ssh-copy-id -i ~/.ssh/claude-mac-ed25519.pub devagent@mac-lab.example

macOS側でssh-copy-idが使えない場合は、公開鍵の内容を対象ユーザの~/.ssh/authorized_keysへ管理者が登録します。秘密鍵は共有せず、リポジトリ、チャット、画面キャプチャにも含めません。

接続元の~/.ssh/configには、実在のアドレスではなく別名を設定します。

Host claude-mac-lab
    HostName mac-lab.example
    User devagent
    IdentityFile ~/.ssh/claude-mac-ed25519
    IdentitiesOnly yes

初回接続ではホスト指紋を確認します。確認せずにStrictHostKeyChecking noを常用すると、接続先のなりすましを検出しにくくなります。

次の4段階をすべて通過させます。

  1. ssh claude-mac-labでログインできる
  2. sftp claude-mac-labで小さな検証ファイルを送受信できる
  3. SSHを閉じてから再接続できる
  4. echo $SHELLpwdcommand -v nodecommand -v gitが期待した値を返す

注意: SSH接続が1回成功しただけでは完了ではありません。ログイン後のPATH、作業ディレクトリ、シェル、ファイル転送を確認しないと、対話シェルでは動くコマンドがClaude Codeから見つからない問題が起きます。

認証経路:個人操作と自動化を分離する

Claude Codeの公式手順では、npmによる導入例として次のコマンドが案内されています。sudo npm install -gは権限問題や安全上のリスクにつながるため避けます。公式CLIセットアップに記載された導入方法と、公開日に表示される案内を優先してください。

npm install -g @anthropic-ai/claude-code
claude doctor
claude --version

claude doctorは、インストール状態や環境の診断に使います。バージョン番号を記事や運用資料へ固定記載するのではなく、導入時に表示された値を記録し、更新後に再確認します。公式資料では自動更新と手動更新の両方が案内されています。

対話的に個人利用する場合は、SSHセッション内で次を実行します。

cd ~/work/sample-project
claude

ブラウザー認証のコールバックをSSH先で完了できない場合は、端末に表示された認証URLを安全なローカルブラウザーで開きます。認証コードやURLをチームチャットへ貼り付けてはいけません。macOSのKeychainに保存される資格情報についても、別ユーザから見える場所へコピーできるとは考えず、専用アカウントのホームディレクトリとアクセス権を確認します。

CIやスクリプトでは、個人の対話セッションを再利用しません。CIのシークレット管理、短時間の資格情報、実行単位の権限を使います。APIキーをシェル履歴、リポジトリ、CLAUDE.md、ログ、スクリーンショットへ書かないことが基本です。非対話モードのCLI例と継続・再開の引数は、公式CLIリファレンスで公開時点の仕様を確認してください。

プロジェクト初期化:macOSツールチェーンを見える化する

コードは専用の作業ディレクトリへ取得します。ホームディレクトリ全体を作業対象にすると、SSH鍵、設定ファイル、キャッシュ、証明書を誤って読み込む範囲が広がります。

mkdir -p ~/work
cd ~/work
git clone git@example.invalid:team/sample-ios.git
cd sample-ios

git config user.name "Example Developer"
git config user.email "dev@example.invalid"
command -v xcodebuild
command -v swift
command -v node

SSHの非対話シェルでは、ログインシェルと同じPATHにならないことがあります。xcodebuild、依存管理ツール、Ruby、Node.jsなどをcommand -vで確認し、必要ならプロジェクトの起動手順にPATHを明示します。GUIからしか見えない環境変数に依存する設計は避けます。

プロジェクト直下にCLAUDE.mdを置き、AIが読むべき作業規則を限定します。公式のメモリ機能では、プロジェクト内のCLAUDE.md、ユーザ領域の設定、読み込み順を使って指示を管理できます。CLAUDE.mdの公式説明を参照し、次のような内容にします。

# Project Rules

- 変更可能な範囲は Sources/ と Tests/ に限定する
- ビルドは xcodebuild -scheme SampleApp test を使う
- 証明書、鍵、Secrets/ は読み取らない
- 変更前後に git diff とテスト結果を確認する
- 生成物をコミットしない

最初の課題は、小さく、差分を戻せるものにします。たとえばテスト1件の修正、ログ出力の整理、単一モジュールの型エラー修正です。読み取り、編集、テスト、git diffの4段階が確認できたら、より大きな作業へ進みます。

権限とサンドボックス:便利さより拒否条件を先に決める

Claude Codeの権限設定では、許可、確認、拒否を分けて考えます。一般的な読み取りや差分確認は許可候補、ファイル変更やテスト実行は確認候補、秘密情報、署名資産、本番設定、SSH関連ファイルは拒否候補です。

設定例は環境に合わせて作り、名称やフィールドは公開前に公式の権限・設定資料で再確認します。

{
  "permissions": {
    "allow": [
      "Read",
      "Bash(git status)",
      "Bash(git diff)"
    ],
    "ask": [
      "Edit",
      "Bash(xcodebuild *)"
    ],
    "deny": [
      "Read(~/.ssh/**)",
      "Read(**/.env*)",
      "Read(**/Certificates/**)"
    ]
  }
}

拒否ルールは「危険そうなファイル」ではなく、資格情報、署名資産、本番設定という業務上の境界で定義します。--dangerously-skip-permissionsのような権限確認を無効化する選択肢は、通常の個人開発ノードや共有環境の標準設定にしません。

サンドボックスを有効にする場合は、書き込み可能なパス、依存関係取得先、テストが必要とするネットワーク先を先に整理します。サンドボックスで依存関係を取得できない場合、無制限に解除するのではなく、許可するドメインとコマンドを個別に追加します。サンドボックス自体を利用できない環境では、失敗して止めるのか、確認付きで代替実行するのかを決めておきます。

検証は3種類に分けます。

  • 正常系:依存関係の取得、テスト、許可した作業ディレクトリの編集
  • 機密系:.env、SSH鍵、証明書、署名ファイルの読み取り
  • 越境系:作業ディレクトリ外への書き込み、禁止コマンド、未許可ドメインへの通信

期待結果は、正常系だけ成功し、機密系と越境系は拒否または明示確認になることです。

経験則: 権限設定は、事故が起きた後に追加するより、最初の小さなタスクで拒否動作まで確認した方が運用コストを抑えられます。成功ログだけでなく、拒否ログも保存します。

セッション復旧:SSH切断を作業停止にしない

SSHは端末の終了、回線変更、ノートPCのスリープで切断されます。長時間の作業では、tmuxなどの端末多重化ツールを使い、Claude CodeのプロセスをSSH接続から分離します。

tmux new -s claude-work
cd ~/work/sample-ios
claude

再接続後は次のように復帰します。

ssh claude-mac-lab
tmux attach -t claude-work

Claude Codeには会話の継続や再開に関するCLI引数がありますが、セッションの保存状態、作業ディレクトリ、リポジトリの未コミット差分は別々に確認します。tmuxに残っていることと、コード変更が安全に保存されていることは同じではありません。

長い処理の完了を待つ場合は、通知設定や端末表示も確認します。公式ターミナル設定では、端末通知や/terminal-setupなどが案内されています。ショートカットが端末側の設定と衝突する場合があるため、導入後に実際の端末で確認します。

Macの再起動後は、次の順番で復旧します。

  1. SSHで再接続できるか確認する
  2. tmux lsでセッションの有無を確認する
  3. git statusgit diffで未保存の作業を確認する
  4. claude --continueまたは対象セッションの再開方法を確認する
  5. Xcode、Simulator、署名関連の状態を個別に検証する

公開前確認:実タスクで運用可否を判定する

公開前の確認を実作業で行います。単なるclaude --versionでは、Xcode、Keychain、権限、切断復旧の問題は見つかりません。

最低限、次の項目を1つずつ記録します。

  • 独立ユーザだけがSSHログインできる
  • 秘密鍵認証が機能し、ホスト指紋を確認している
  • Gitの取得、差分確認、変更、テストが完了する
  • xcodebuildなどmacOS専用コマンドが非対話シェルから見つかる
  • .env、SSH鍵、証明書、署名資産が拒否される
  • 作業ディレクトリ外の変更が拒否される
  • SSH切断後にtmuxまたはセッション再開で戻れる
  • Mac再起動後のログインと作業再開手順がある
  • 認証情報を履歴、ログ、リポジトリに残していない
  • Claude Codeの更新方針と更新後の再検証担当が決まっている

WindowsやLinuxの既存環境だけで進める場合、macOS専用SDKを呼べない、Simulatorを使えない、Keychainや署名資産を同じ条件で検証できないという欠点があります。仮想環境では、Apple固有のツールチェーン、画面操作、物理デバイス連携が運用上の制約になりやすいです。

そのため、数日だけXcode連携を試すのか、継続的なAI開発ノードが必要なのかを分けて判断します。短期検証ならProxyMacの日本向けMacレンタル料金を確認し、SSH接続、権限拒否、実タスクの成否を先に確かめる方法が現実的です。長期に安定した高負荷処理を続ける場合や、物理iPhone、専用USB機器、現地GUI操作が必須の場合は、自社保有のMacの方が適する場合もあります。

遠隔Macを採用する場合は、利用開始後にコンソールの接続手順と、アカウント回収時のパスワード変更手順も運用資料へ加えておきます。最初から長期契約に固定せず、実際のmacOSツールチェーン、利用期間、常時稼働の必要性を小さな可逆タスクで確認してから、Claude Codeの開発ノードとして継続利用するか決めるのが安全です。

SSHで使えるMac開発環境をProxyMacで整えませんか

ProxyMacなら、XcodeやSimulatorなどMac専用ツールに対応した遠隔Macを必要な期間だけ利用できます。
SSH接続に対応した開発環境で、手元の端末から効率的にコードの作成や検証を進められます。