ブログ/SSH + Tailscale ガイド

SSH + Tailscale で、iPhone から Claude Code を動かす

2026-07-17

このガイドで作る構成はこうです。開発マシン(自宅のデスクトップ、職場のワークステーション、VPS)をプライベートな Tailscale ネットワークに参加させ、iPhone からはどこにいても SSH で接続します。ポート開放も固定 IP も不要です。Claude Code はマシン上の tmux 内で動き、スマホはそのターミナルとして機能します。

SSH を公開してはだめ?

ポート22をインターネットに開けるのはスキャナと総当たり攻撃を招くだけ。tailnet なら SSH は自分のデバイスからのみ到達可能で、WireGuard により端到端で暗号化されます。

ステップ1:開発マシンを Tailscale に参加させる

# Linux
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up

# macOS: install the Tailscale app and sign in

アカウントでログインすると、マシンに固定の 100.x.y.z アドレスが割り当てられ、MagicDNS を使えば devbox のような名前も付きます。tailscale status で確認しましょう。

ステップ2:iPhone 用の Auth Key を生成

Tailscale 管理コンソールで Auth Key を作成します。ServerCC はこのキーでアプリの内部から tailnet に参加します — iOS にシステム全体の Tailscale VPN をインストールする必要はありません。再利用可能キーが便利で、ServerCC は iOS キーチェーンに保存します。

ステップ3:ServerCC にサーバーを追加

1

ホスト:Tailscale IP(100.x.y.z)または MagicDNS 名(devbox

2

認証:パスワードまたは SSH 鍵(暗号化鍵にも対応)

3

Tailscale 経由で接続をオンにして Auth Key を貼り付け — 詳細は Tailscale ドキュメント

まず Wi-Fi で接続を確認したら、モバイル回線でも試してください。結果は同じです。アプリはエフェメラルノードとして tailnet に参加し、その上で SSH をブリッジします。スマホの他のアプリには影響しません。

ステップ4:Claude Code を実行 — そしてアプリを閉じる

ワークスペースを開いて Claude Code をタップすると、開発マシンの tmux 持続セッション内で起動します。その後は画面をロックしても電波が切れても、実行はサーバー上で続きます。ServerCC を開き直せば同じセッションに再アタッチされますし、長い実行は完了時に通知させることもできます。

トラブルシューティング

  • Auth Key が無効/期限切れ — 管理コンソールでローテーションし、サーバー設定を更新
  • ホストに到達できない — 開発マシンがオフラインか tailnet から外れています。tailscale status を確認
  • tmux 内で "claude: command not found" — PATH は profile 系ではなく .bashrc/.zshrc に書く

モバイルワークフローについてさらに:Claude Code を iPhone で · iOS で tmux