MacとMac miniのClaude Code環境をTailscale+rsyncで同期する方法

MacとMac miniのClaude Code環境をTailscale+rsyncで同期する方法

執筆・編集:株式会社Nexa 編集部(下書きと機械検査はAI、公開前に人が確認)/約14分で読めます。公式ドキュメント・公式発表などの一次情報を確認したうえで執筆・更新しています。AIツールの仕様や料金は変わることがあるため、導入判断の前に各公式サイトの最新情報もご確認ください。記事の作り方と検査の方針

TailscaleとrsyncでMac間のClaude Code環境を差分同期すれば、複数PCで同一スキル・設定を共有できます。

  • 要点1: Tailscaleインストールだけでポート開放不要のP2P暗号化接続が確立できる
  • 要点2: rsyncの差分同期は初回以降80MB程度の転送で完了(全量5GBを毎回送らない)
  • 要点3: macOSのSSH権限エラーはsshd-keygen-wrapperへのフルディスクアクセス付与で解消できる

対象: Mac miniとMacBookの両方でClaude Codeを活用したいエンジニア・AI活用担当者

今日やること: TailscaleをMac mini・MacBookの両方にインストールし、同じアカウントでログインする

この記事の著者
株式会社Nexa 代表取締役川島 陸

一橋大学経済学部卒業後、フォーティエンスコンサルティング株式会社(旧 株式会社クニエ)にて法人向けAI導入支援等を経験。独立後、AI系メディア運営やDify/n8nの導入支援を経て、株式会社Nexaを創業。法人向けAI研修・AI導入支援・AI関連メディア運営を手掛ける。

MacBookとMac miniの両方でClaude Codeを使いたい場合、スキルや設定ファイルを手動でコピーするのは現実的ではありません。TailscaleとrsyncでMac間を接続すれば、差分のみを転送して数分で環境を揃えられます。

「せっかくMac miniに構築したカスタムスキルやCLAUDE.mdを、MacBookでも使いたい」という声は多くあります。しかしClaude Codeの実行フォルダには機密情報が含まれるため、GitHubでの管理には落とし穴があります。

この記事では、あるClaude Codeヘビーユーザーが実際に経験したトラブルと解決策をもとに、Tailscale+rsyncによるMac間同期の設定手順を解説します。macOS固有の権限エラーやパス差分問題も含め、つまずきやすいポイントを詳しく説明します。

※本記事のTailscaleの料金・仕様は2026年10月2日にTailscale公式サイトで確認しています。

なぜGitHubよりrsync+Tailscaleが適しているのか

Claude Code環境の同期方法を検討する際、最初に思いつくのがGitHubによるバージョン管理かもしれません。しかし実際のClaude Code実行フォルダを精査すると、GitHubは不適切だとわかります。

GitHubが適さない理由

Claude Codeを本格的に活用するほど、実行フォルダには以下のような機密情報が蓄積されていきます。

ファイル・フォルダ 含まれる情報 リスク
Google OAuthクライアントシークレット(.json) OAuth認証情報 Googleサービスへの不正アクセス
GCPサービスアカウントキー(.json) クラウドリソースのアクセス権限 Google Drive等の不正操作
.claude/settings.local.json APIトークン 有料APIの不正利用
contacts/ 個人・取引先情報 個人情報の流出

これらのファイルを除外すれば、「同じ環境を再現する」という目的は果たせません。除外設定が多すぎて、環境の実体をGitHubに置けないのです。

ポイント機密情報の多いClaude Code実行フォルダは、GitHubではなくTailscale+rsyncで管理するのが現実的です。プライベートネットワーク内での転送であれば、機密ファイルをそのまま安全に同期できます。

Tailscale+rsyncのメリット

比較軸 GitHub Tailscale+rsync
機密情報 除外が必要(設定漏れのリスクあり) そのまま転送(プライベートネットワーク)
初期設定 .gitignoreの慎重な設定が必要 Tailscaleをインストールするだけ
同期速度 差分が多いと遅い rsyncの差分転送で高速(変更分のみ)
バイナリファイル 不得意 問題なし
方向性 双方向(コンフリクトのリスクあり) 一方向(シンプルで安全)

事前準備:Tailscaleのインストールとネットワーク構成

Tailscaleとは

Tailscaleは、ゼロコンフィグで使えるP2P VPNツールです。Wireguardをベースとした暗号化トンネルをデバイス間に自動構築し、ルーターのポート開放やIPアドレスの固定が不要です。個人・小規模利用は無料で使えます。

複数のMacでClaude Codeを使いたい場合、Mac miniとMacBookの両方にTailscaleをインストールするだけで、安全なプライベートネットワークが完成します。

両MacへのTailscaleインストール手順

Step 1: インストール

Tailscale公式サイトから、Mac miniとMacBook両方にインストールします。

# macOSの場合はbrew経由でもインストール可能
brew install tailscale

または、App StoreからTailscaleをインストールする方法も使えます。

Step 2: 同じアカウントでログイン

Mac mini・MacBook両方でTailscaleを起動し、同じGoogleアカウント(またはGitHubアカウント)でログインします。これだけで両機器がTailscaleのプライベートネットワーク(テールネット)に追加されます。

Tailscale IPアドレスの確認方法

同期コマンドで使用するIPアドレスは以下のコマンドで確認できます。

# 現在の接続状態を確認
tailscale status

実行結果の例:

100.64.0.10  macbook-air   your-account@  macOS  -
100.64.0.20  mac-mini      your-account@  macOS  active; direct 192.168.x.x:xxxxx

表示されたTailscale IP(100.x.x.x)をrsyncコマンドで使用します。DHCPで変動するローカルIPアドレスと違い、TailscaleのIPアドレスは固定されるため、毎回確認する必要がありません。

SSH鍵認証の設定

Tailscale経由のSSHでは、パスワード認証より鍵認証が推奨されます。一度設定すれば、以降はパスワードなしでrsyncが実行できます。

Mac miniでSSH鍵を生成する

転送元(Mac mini)のターミナルで以下を実行します。

# ed25519形式で鍵を生成(既存の鍵がある場合はスキップ)
ssh-keygen -t ed25519 -C "your-email@example.com"

パスフレーズは空のままでよい場合はEnterを連打します(業務環境では適切なパスフレーズの設定を推奨します)。

生成された公開鍵を確認します。

cat ~/.ssh/id_ed25519.pub

ssh-ed25519 AAAA... から始まる1行のテキストが表示されます。これをコピーしておきます。

MacBook Air側のauthorized_keysに登録する

MacBook側のターミナルで以下を実行し、Mac miniの公開鍵を登録します。

# .sshフォルダが存在しない場合は作成
mkdir -p ~/.ssh && chmod 700 ~/.ssh

# Mac miniの公開鍵を追加(コピーした内容を貼り付ける)
echo "ssh-ed25519 AAAA...(ここにMac miniの公開鍵を貼り付け)" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

MacBook側でリモートログインを有効にする必要があります。

システム設定 → 一般 → 共有 → 「リモートログイン」をオンにし、アクセスを「すべてのユーザー」に設定します。

接続テストと疎通確認

Mac miniから以下のコマンドでSSH接続を確認します。

# MacBook AirのTailscale IPへSSH接続(ユーザー名は各自の環境に合わせる)
ssh your-username@100.64.0.10 "echo 接続成功"

接続成功と表示されれば、鍵認証の設定は完了です。

macOSの権限設定(フルディスクアクセス)

ここが最も多くのユーザーがつまずくポイントです。SSH経由のrsyncがDesktopフォルダなどに書き込もうとすると、macOSのセキュリティがブロックすることがあります。

よくあるエラー「Permission denied」の原因

rsyncコマンドを実行した際に以下のようなエラーが出る場合があります。

rsync: [sender] send_files failed to open "/path/to/Desktop/..." (in module): Permission denied (13)

このエラーの原因は、macOSのプライバシー保護機能にあります。SSH経由でログインすると、sshd-keygen-wrapperというプロセスがファイル操作を担当します。このプロセスにDesktopフォルダへのアクセス権限がないとrsyncが失敗します。

フルディスクアクセスをターミナルアプリや/usr/bin/rsyncに付与しても解消しない場合は、このプロセスへの権限付与が必要です。

システム設定でsshd-keygen-wrapperに権限を付与する手順

Step 1: MacBook側で「システム設定」を開く

Step 2: 「プライバシーとセキュリティ」→「フルディスクアクセス」を選択

Step 3: 「+」ボタンをクリックして追加画面を開く

Step 4: Cmd + Shift + Gでパス入力欄を開き、/usr/libexec/sshd-keygen-wrapperと入力してEnter

Step 5: sshd-keygen-wrapperを選択して「開く」

この設定後、SSH経由のrsyncがDesktopフォルダへ正常にアクセスできるようになります。

ポイントターミナルアプリのフルディスクアクセス(MacBook側で操作する場合)も合わせて有効にしておくと、ローカルでの操作にも支障が出ません。


AI導入に関するお困りごとは、株式会社NexaのAI顧問がサポートします。「何から始めればいいか分からない」という段階からご相談いただけます。

AI顧問の無料相談はこちら →


rsyncで差分同期するコマンド

権限設定が完了したら、実際の同期コマンドを組み立てます。rsyncは変更されたファイルのみを転送するため、初回以降は非常に高速に完了します。

実際のケースでは、約5GBのフォルダに対して初回同期後の差分転送は約80MB(スピードアップ比44倍)で完了しました。

基本の同期コマンド(Claude Code実行フォルダ)

# Mac mini → MacBook Air へ差分同期(追加・更新のみ)
rsync -avz \
  -e "ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519" \
  --exclude 'node_modules/' \
  --exclude '.git/' \
  --exclude '.DS_Store' \
  --exclude 'moltworker/' \
  --exclude '*.json' \
  "/Users/your-username/Desktop/Claude Code実行フォルダ/" \
  "your-username@100.64.0.10:Desktop/Claude Code実行フォルダ/"

オプションの説明:

オプション 意味
-a アーカイブモード(パーミッション・タイムスタンプを保持)
-v 詳細表示(どのファイルを転送したか確認できる)
-z 転送時に圧縮(ネットワーク帯域を節約)
-e "ssh ..." SSH経由で接続(鍵を明示的に指定)
--exclude 同期から除外するパターン

重要: スペース入りパスについて

Claude Code実行フォルダのようにパスにスペースが含まれる場合は、上記のように引用符で囲みます。シングルクォートではなくダブルクォートを使うと、シェル変数が展開される点に注意してください。

スキルとCLAUDE.mdの同期コマンド

Claude Codeのカスタムスキル(~/.claude/skills/)とグローバル設定(~/.claude/CLAUDE.md)も忘れずに同期します。

# スキルの同期
rsync -avz \
  -e "ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519" \
  ~/.claude/skills/ \
  "your-username@100.64.0.10:~/.claude/skills/"

# CLAUDE.mdの同期
rsync -avz \
  -e "ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519" \
  ~/.claude/CLAUDE.md \
  "your-username@100.64.0.10:~/.claude/CLAUDE.md"

–deleteオプションの使い分け

rsyncには--deleteオプションがあり、送信側に存在しないファイルを受信側から削除します。

用途 コマンド 注意点
追加・更新のみ(推奨) --deleteなし 受信側の独自ファイルが残る
完全一致(マスター同期) --deleteを追加 受信側のファイルが削除される可能性あり

MacBook側でも独自にファイルを作成することがある場合は、--deleteを外した「追加・更新のみ」モードが安全です。

パス差分の修正(ユーザー名が異なる場合)

MacBookとMac miniのユーザー名が異なる場合(例: kawashimariku と riku)、SKILL.md内にハードコードされたフルパスを修正する必要があります。

修正が必要なファイルの探し方

スキルを同期した後、以下のコマンドで旧ユーザー名が残っているファイルを検索します。

# スキルフォルダ内で旧ユーザー名を検索
grep -rl "旧ユーザー名" ~/.claude/skills/

例えばkawashimarikuという旧ユーザー名が残っている場合、以下のように表示されます。

/Users/your-username/.claude/skills/nexa-gsc/scripts/gsc_query.py
/Users/your-username/.claude/skills/nexa-html-slides/SKILL.md
/Users/your-username/.claude/skills/nexa-media/wp-publish/SKILL.md
/Users/your-username/.claude/skills/nexa-pptx-generator/SKILL.md

sedコマンドで一括置換する方法

# macOSのsedは -i '' が必要(Linuxと異なる点に注意)
find ~/.claude/skills -type f -name "*.md" -o -name "*.py" | \
  xargs sed -i '' 's|/Users/your-username/|/Users/your-username/|g'

置換後、再度grepで確認して残りがゼロになればOKです。

# 修正されたか確認
grep -rl "kawashimariku" ~/.claude/skills/
# → 何も表示されなければ完了

なお、Claude Codeそのものについては、Anthropic社が提供するAIコーディングツールです。ターミナル上で対話しながらコードの生成・修正・レビューを行えます。コンテキストを保持したまま会話できるため、スキルと呼ばれる専用の指示ファイルを通じて様々なタスクを自動化できます。(Claude Codeの詳細はこちら →)

\ AI活用の「次の一手」を一緒に考えませんか /

AI顧問の無料相談はこちら

よくある質問

Q. Tailscaleを使わずに自宅LANだけでrsync同期できますか?

同じネットワーク内(自宅LAN)であれば、Tailscaleなしでもssh ユーザー名@ローカルIPでrsyncが実行できます。ただし外出先からMac miniへアクセスする場合や、IPアドレスが変動する環境では、Tailscaleのほうが安定しています。Tailscaleは個人利用なら無料で使えるため、最初からTailscaleを使うほうがシンプルです。

Q. 毎回コマンドを実行するのが面倒です。定期的に自動同期できますか?

Claude Codeが動く環境であれば、OpenClawのcronジョブとして同期コマンドを定期実行できます。たとえば毎日深夜にMac miniからMacBookへ差分同期するジョブを設定すれば、手動実行が不要になります。(OpenClawのcronジョブについて →)

Q. MacBook AirからMac miniへの逆方向同期はどうすればよいですか?

同期元と同期先を逆にするだけです。ただしMac miniとMacBook両方で独自の変更が発生した場合、「どちらが最新か」の判断が必要になります。rsyncはコンフリクト解決機能を持たないため、基本は「Mac miniをマスター、MacBookをスレーブ」という一方向の運用が管理しやすいです。

Q. Tailscaleは無料で使えますか?台数の制限はありますか?

個人利用であれば無料プラン(Personal)で使えます。2026年10月2日にTailscale公式サイトで確認した内容では、無料プランは最大6ユーザー・デバイス数は無制限です。Mac miniとMacBookの2台だけで使う場合は無料プランの範囲内に収まります。チームでの商用利用や、より高度なアクセス制御が必要な場合は有料プランを検討してください。

Q. フルディスクアクセスを付与してもrsyncがPermission deniedのままの場合は?

お使いのmacOSのバージョンによっては、「システム設定」の「フルディスクアクセス」一覧にsshd-keygen-wrapperを追加しようとしても反映されない不具合が報告されています。その場合はFinderで/usr/libexec/sshd-keygen-wrapperを直接探し、フルディスクアクセスの一覧画面へドラッグ&ドロップで追加すると回避できることがあります。それでも解消しない場合は、一度MacBookを再起動してから権限設定をやり直してください。

まとめ

MacBookとMac miniでClaude Code環境を同期するための手順をまとめます。

  1. Tailscaleのインストール: 両Macに入れて同じアカウントでログインするだけ。Tailscale IPが固定されるため以降の接続設定が不要
  2. SSH鍵認証の設定: Mac mini側で鍵生成 → MacBook側のauthorized_keysに登録
  3. フルディスクアクセスの付与: MacBook側で/usr/libexec/sshd-keygen-wrapperに権限を付与(Permission deniedエラーの解消)
  4. rsyncの実行: --deleteなしで「追加・更新のみ」の安全な差分同期
  5. パス差分の修正: ユーザー名が異なる場合、SKILL.md等のフルパスを一括置換

特にmacOSのフルディスクアクセス問題は、多くのユーザーがつまずくポイントです。ターミナルや/usr/bin/rsyncへの権限付与では解消しないケースがあり、sshd-keygen-wrapperへの権限付与が必要な点は覚えておくと役立ちます。


法人向けAI導入・活用の月額伴走サービス

AI導入の疑問を、週1回のMTGで相談できる「AI顧問」

株式会社Nexaでは、ChatGPT・Claude・Claude CodeなどのAI導入に関する質問や、社内活用・業務自動化の進め方を週1回相談できる 月額7万円(毎月3社限定で月額5万円)のAI顧問サービス を提供しています。

「自社では何から始めるべきか」「この業務はAI化できるか」「どのツールを選ぶべきか」を、無料相談で整理します。

AI顧問の無料相談はこちら →





AI導入を検討中の方へ

AIの力で、ビジネスを次のステージへ

まずはお気軽にご相談ください。貴社に最適なAI活用プランをご提案します。