
2026/05/26 7:10
macOS 上で OrbStack VM に Tailscale を使用する方法
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
本テキストは、OrbStack および Tailscale を使用して macOS 上で安全な Ubuntu 25.10 バーチャルマシン(VM)をプロビジョニングするための効率的なワークフローを概説しています。その主たる価値は、OrbStack のネイティブ Linux カーネルに依存し、複雑なユーザー空間のネットワーク回避策なしで、直接的かつ安全なリモートアクセスを実現できる点にあります。重要な技術的な詳細として、VM が macOS のキーチェーンに直接アクセスできないため、ホストから認証鍵をサンボクされたゲスト VM に注入する必要が生じます。
本プロセスでは、YAML ファイルを使用して一時的な VM を構成し、ACL やタグなど Tailscale のネットワークポリシーを適用し、
player1 などの特定のユーザー向けに SSH を設定します。システムが稼働すれば、開発者は MagicDNS または標準の CLI コマンドを使用してサーバーから直接 Git リポジトリをクローンできます。テストシナリオにおける最大限の安全性を確保するため、このガイドには VM インスタンスを完全に破棄し、ローカルキーチェーン上の機密認証情報をすべて削除するクリーンアップスクリプトが用意されています。このアプローチは、厳格なアクセス制御を維持しつつ一時的なコラボレーションに最適な堅牢で使い捨て可能な開発環境を提供します。本文
macOS/OrbStack での Ubuntu VM と Tailscale セットアップガイド
このリポジトリでは、macOS で OrbStack を使用して Ubuntu の仮想マシン (VM) をセットアップし、それを Tailscale テールネットワーク に追加する方法を紹介します。
1. 仕組みと特徴
- 完全な Linux カーネル環境の提供:
- 最小限のコンテナランタイムではネイティブカーネルモジュールが使えませんが、OrbStack は完全機能の Linux カーネルを提供します。
- これにより Tailscale はユーザースペースの代替手段に頼らず、標準的なカーネルネットワークインターフェース (
) を活用できます。/dev/net/tun
- セットアップ手順:
- OrbStack が一時的な VM インスタンスを起動します(
の設定取得用)。cloud-init - VM は一時停止された後に、事前構成済みの状態で再起動されます。
- 認証キーを用いてお客様のテールネットワークへ追加し、Tailscale SSH が有効化されます。
- OrbStack が一時的な VM インスタンスを起動します(
- 利点:
- ホストのポート公開不要で、任意の場所から VM への SSH 接続が可能になります。
- macOS 固有の方法で Tailscale の認証キーを Apple キーチェーン に安全に格納します。
- セキュリティ制限への対応:
- macOS のセキュリティサンドボックス制限のため、ゲスト VM からホストの
を直接実行できません。security find-generic-password - そのため、認証情報はプロビジョニング時にホスト環境から注入します(
で処理)。run.sh
- macOS のセキュリティサンドボックス制限のため、ゲスト VM からホストの
2. アクセス制御の変更 (ACL)
VM を起動する前に、自動登録と権限を適切に処理できるよう Tailscale の ACL を設定してください。
タグの作成
アクセス制御 ([Access Control]) > [タグ] ページへ移動し、以下の手順に従います。
- サーバー用のタグを定義します。
- タグ名:
myservers - タグ所有者:
your-email@example.com
- タグ名:
Tailscale SSH アクセス制御の変更
アクセス制御 ([Access Control]) > [Tailscale SSH] ページへ移動し、ポリシーが設定されたサーバーへのアクセスを確認します。
以下のような JSON パターン(例)を使用します:
{ "action": "accept", "src": ["autogroup:admin"], "dst": ["tag:myservers"], "users": ["player1", "player2"] }
変更のポイント:
アレイに新しいタグdst
を追加します。myservers- cloud-config で定義されたユーザー (
,player1
) をplayer2
アリーに追加します。users - シームレスな SSH アクセスを実現するため、
の値を"action"
から "accept" に変更します。"check"
3. Tailscale 認証キーの作成
Tailscale Admin Keys パネルから認証キーを生成します。
- 以下の設定を行います:
- Reusable(再利用可能): 有効化
- Pre-authorized(事前承認): 有効化
- Tags: 新しく作成したタグを選択 (
)tag:myservers
- 生成された認証キーを Apple キーチェーンに格納します:
./store-ts-key-keychain.sh
※注記: このコマンドを実行すると、キーチェーンに
という名前のエントリが作成されます。tailscale-auth-key-dev-server
4. VM の構築とプロビジョニング
を実行して Ubuntu 25.10 の環境を構築・プロビジョニングします。build.sh- VM を起動し、お客様のテールネットワークに追加します。
が認証を完了するまで待機した後に接続を開始してください。run.sh
接続方法
- MagicDNS 名:
ssh player1@dev-server - 内蔵のローカル SSH プロキシ:
ssh player1@dev-server@orb - CLI コマンド (OrbStack):
orb -m dev-server
Git の使用例
Tailscale SSH が正しく設定されている場合、特別な認証なしで直接クローンできます(
dev-server に Git リポジトリがある前提)。
git clone player1@dev-server:~/my-proj
5. ファイル説明
: cloud-init レシピ。環境設定、システムロケール、デフォルトの開発パッケージ、ユーザーアクセストリープロファイル、Tailscale エンジンのインストールタスクなどを指定します。dev-server.yml
:build.sh
に記載された構成を使用して、Ubuntu 25.10 の環境を構築・プロビジョニングします。dev-server.yml
: キーチェーンから認証キーを取得し、SSH を有効化した状態で VM 内に Tailscale インターフェース (run.sh
) を起動します。tailscale up
: セットアップを完全に破棄します。cleanup.sh- VM をテールネットワークからログアウトさせる
- OrbStack のインスタンスを破壊する
- キーチェーンから認証キーを削除する
: システムクリップボードから認証キーをコピーし、それをキーチェーンに格納します。store-ts-key-keychain.sh