リモート接続ガイド

ローカル端末からクラウドMacへ安全に接続

まず、作業に必要なのがコマンドライン、リモートデスクトップ、無人実行のどれかを判断し、認証情報、ツールチェーン、権限を確認します。VMRunnerが提供するのは専用Apple Silicon物理ノードで、仮想マシンではありません。接続情報はコンソールの納品済み注文を基準にしてください。

接続方法
3種類
提供形態
専用物理ノード
稼働体制
365日
CONNECTION RUN SHEET

接続プランナー

ノード納品後に実行
01
SSH管理 リポジトリ、ビルド、ログ
推奨
02
リモートデスクトップ Xcode、素材、対話型デバッグ
必要時
03
CI Runner テスト、署名、成果物転送
継続
認証情報の分離 確認済み
ホストフィンガープリント ローカルで要確認
最初のビルド 小さな作業から開始

同じ認証情報を個人セッションと自動化タスクに同時に渡さないでください。まず取り消し可能な専用アカウントを作成し、その後Runnerを接続します。

接続方法を選ぶ

操作内容で分け、リモートデスクトップを最初から開かない

コマンドラインは頻繁なスクリプト化操作に、リモートデスクトップは対話が必要なツールに、継続タスクは専用Runnerに適しています。切り分けることで権限範囲が明確になり、接続問題も特定しやすくなります。

コマンドライン管理

Git操作、依存関係のインストール、ログ確認、スクリプト実行、ビルドに適しています。帯域消費が少なく、接続が切れても復旧しやすい方法です。

  • 一般的な接続先:SSH
  • 適した作業:ビルドと運用
  • 推奨権限:鍵認証

リモートデスクトップ操作

Xcodeの画面デバッグ、シミュレータ確認、音声・動画プロジェクトの処理、ウィンドウ状態の確認が必要な作業に適しています。解像度が高いほど、ローカルネットワークへの要求も高くなります。

  • 一般的な接続先:リモートデスクトップ
  • 適した作業:対話型ツール
  • 推奨権限:専用セッションアカウント

CI自動実行

テスト、アーカイブ、署名、成果物転送に適しています。Runnerは専用アカウントで実行し、環境変数はタスクごとに注入します。個人のデスクトップセッションと認証情報を共有しないでください。

  • 一般的な接続先:セルフホストRunner
  • 適した作業:継続的なパイプライン
  • 推奨権限:最小権限
接続前の確認

納品情報とローカル環境を先に記録する

リモート接続の調査で最も時間を失いやすいのは、複雑な障害ではなく、ノードのアドレス、アカウント用途、ローカルネットワークの基準値が不明確なことです。初回接続前に以下を記録すれば、変化した層を判断できます。

保存する納品記録

注文ID、ノードの都市、ノードアドレス、アカウント用途、ホストフィンガープリントの確認結果、初回接続成功時刻。秘密鍵は管理対象の端末だけに保存し、チケット、チャット、コードリポジトリには書き込まないでください。

  1. 01

    注文の納品を確認

    コンソールで注文状態と接続情報を確認します。納品が完了する前に、古いアドレスや他人の記録を使って接続しないでください。

  2. 02

    ノードアドレスと専用認証情報を保存

    個人操作、自動化タスク、一時的な共同作業には、それぞれ取り消し可能なアカウントまたは鍵を使い、長期的な認証情報を共有しないでください。

  3. 03

    ローカルネットワークの基準値を測定

    有線・無線ネットワークでの遅延、パケット損失、安定性を記録します。リモートデスクトップが重いときは、まずこの基準値と比較してください。

  4. 04

    アカウント権限を設計

    開発アカウントには作業ディレクトリに必要な権限だけを付与し、Runnerアカウントはビルドディレクトリ、キャッシュ、必要な署名リソースだけにアクセスできるようにします。

SSH接続

まずホストの身元を確認し、日常接続は鍵認証に切り替える

初回接続の目的は警告を急いで無視することではなく、現在のアドレスが納品済みノードに対応していることを確認することです。フィンガープリントを確認した後、エイリアス、接続維持設定、最小権限アカウントを整えます。

STEP 01

ホストフィンガープリントを確認

ssh-keyscan -t ed25519 NODE_ADDRESS
ssh USER@NODE_ADDRESS

初回に取得したフィンガープリントをコンソールの納品情報と照合します。アドレス変更やシステム再インストール後にフィンガープリントが変わった場合は、原因を確認してから接続してください。

STEP 02

専用鍵を生成して配置

ssh-keygen -t ed25519 -a 64
ssh-copy-id USER@NODE_ADDRESS

VMRunnerノード専用の鍵を生成します。秘密鍵にはローカルパスフレーズを設定し、リポジトリに登録せず、Runnerのデプロイ鍵とも共有しないでください。

STEP 03

エイリアスと接続維持を設定

Host vmrunner-build
  HostName NODE_ADDRESS
  User ACCOUNT_NAME
  IdentityFile ~/.ssh/vmrunner_ed25519
  ServerAliveInterval 30
  ServerAliveCountMax 3

エイリアスを使うとアドレスの転記ミスを減らせます。接続維持パラメータは切断を検知するだけで、中断したプロセスを自動復旧するものではありません。長時間の作業はタスクマネージャーまたはCI Runnerに任せてください。

最小権限の範囲

管理者権限を日常の既定にしないでください。依存関係のインストール、システム設定、パイプライン実行ではアカウントを分けます。一時的な権限昇格が終わったら直ちに通常権限へ戻し、変更内容を記録してください。

リモートデスクトップ

作業に必要な最低限の画質に調整する

リモートデスクトップは、Xcode、シミュレータ、タイムライン画面を確認する必要がある操作に適しています。すべてのバックグラウンド作業の代わりにはしないでください。まず低い解像度で安定したセッションを作り、徐々に画質を上げます。

  • 納品済みノードでリモートデスクトップサービスが有効か確認し、ログインを許可するアカウントを制限します。
  • まず単一ディスプレイと低解像度でテストし、入力と画面が安定してから設定を上げます。
  • Command、Option、Controlとローカルキーボード配列を確認し、ショートカットの誤操作を防ぎます。
  • クリップボードでは必要なテキストだけを転送し、秘密鍵、完全なトークン、証明書パスワードはコピーしません。
  • 離席時はセッションをロックし、作業終了後は明示的に切断します。使っていないデスクトップを長時間開いたままにしないでください。

リモートデスクトップの調整順序

安定性を優先
01 解像度

ツールウィンドウをすべて表示できる最低設定から始め、入力遅延と画面更新を確認します。

02 色とアニメーション

ネットワークが不安定なときは視覚効果を下げ、操作への応答とファイル同期に帯域を優先します。

03 キーボードマッピング

安全なテキストウィンドウでよく使うショートカットをテストしてから、署名、削除、公開操作に進みます。

04 セッションロック

中断後はまず以前のセッション状態を確認し、ツールの重複起動や同じ作業ディレクトリの占有を防ぎます。

移行手順

ローカルMacからクラウドMacへ、3段階で検証

コード、証明書、キャッシュ、パイプラインを一度にすべて移行しないでください。各段階で検証可能な出力を残し、前段階の確認後に次へ進みます。

01 · DATA

データ同期

まずリポジトリ、ロックファイル、必要な素材、ビルドスクリプトを同期します。大容量キャッシュや再ダウンロード可能な依存関係は初回移行の対象にしません。

  • デフォルトブランチとコミットハッシュを確認
  • 依存関係ロックファイルのバージョンを記録
  • 重要な素材のチェックサムを比較
出力:クラウドで再現可能なコード基準
02 · TOOLCHAIN

ツールチェーンのインストール

Xcode、コマンドラインツール、パッケージマネージャー、証明書、プロビジョニングプロファイルを確認します。まず小規模なテストターゲットを実行し、完全なリリースパイプラインは後に回します。

  • XcodeとSDKのバージョンを固定
  • コマンドラインツールの選択パスを確認
  • 依存関係キャッシュとビルドディレクトリを分離
出力:テストビルドに合格した環境一覧
03 · RUNNER

CI接続

専用Runnerアカウントを作成し、環境変数の読み取り範囲を制限します。ロールバック可能なテストタスクを1回実行し、成果物を転送します。

  • Runner専用の作業ディレクトリを作成
  • 現在のタスクに必要な変数だけを注入
  • ログ、終了コード、成果物のハッシュを確認
出力:監査可能な最初のクラウドパイプライン
環境確認

開発環境を記憶ではなく一覧で再現する

同じコードでも2台のMacで動作が異なる場合、通常はツールのバージョン、パス、キャッシュ、権限の違いが原因です。最初の正式ビルド前に、以下の項目を記録してください。

確認項目 確認方法 合格基準
XcodeとSDK xcodebuild -version バージョンがプロジェクト基準と一致
コマンドラインツール xcode-select -p パスが対象Xcodeを指している
証明書とプロビジョニングプロファイル 機密情報を除いた署名チェックを実行 対象名と有効範囲が一致
パッケージマネージャー バージョンとロックファイルの状態を記録 依存関係を再現可能にインストールできる
キャッシュディレクトリ 所有者、容量、クリーンアップ規則を確認 個人タスクとCIが分離されている
ビルドディレクトリ クリーン後にテストビルドを実行 成果物のパスと権限が明確
CI接続

自動化タスクに専用のIDと作業ディレクトリを割り当てる

Runnerで開発者のデスクトップアカウントを再利用しないでください。専用IDにより、権限の取り消し、キャッシュの削除、ファイル所有者の問題の特定が容易になり、個人セッションによるパイプラインへの干渉も減らせます。

CIトラブルシューティングを見る
  1. 01

    専用アカウントを作成

    アカウントはリポジトリの作業領域、依存関係キャッシュ、ビルドディレクトリ、必要な署名リソースだけにアクセスし、日常的な管理者権限は付与しません。

  2. 02

    Runnerを登録

    パイプラインプラットフォームの登録手順で現在のノードに紐付け、チップ、システム、タスク種別を識別できるラベルをRunnerに設定します。

  3. 03

    管理された変数を注入

    変数はリポジトリ、環境、タスクの範囲ごとに設定します。ログでは機密値を隠し、完全な設定ファイルをビルド記録に出力しないでください。

  4. 04

    テストビルドを実行

    依存関係が少なく短時間で終わるターゲットから始め、終了コード、テスト結果、キャッシュヒット、作業ディレクトリのクリーンアップを確認します。

  5. 05

    成果物を転送して確認

    成果物名、生成元コミット、チェックサム、保存場所を記録します。転送成功を確認してから、完全なパイプラインへ拡大します。

安全な仕上げ

接続成功だけでは移行完了にならない

本番利用前に、認証情報、共有範囲、バックアップ、復旧情報をもう一度確認します。すべてのアカウント、セッション、自動化タスクを個別に取り消せる状態にすることが目的です。

A

初期認証情報をローテーション

初回確認後に初期パスワードまたは鍵を変更し、不要になった一時的な権限を削除します。認証情報の用途と担当者も記録してください。

B

共有アカウントを制限

利用者ごと、Runnerごとに専用IDを使います。権限を変更するときは該当アカウントだけを取り消し、他のワークロードに影響させません。

C

重要データをバックアップ

コードはリモートリポジトリを主とし、署名素材、プロジェクト素材、重要な成果物はチームの方針に従ってバックアップします。復旧手順も定期的に検証してください。

D

アイドルセッションを切断

使わなくなったリモートデスクトップセッションをロックして閉じ、一時サービスを停止します。バックグラウンドタスクに明確な所有者がいるか確認してください。

E

復旧情報を保存

注文ID、ノードの都市、アカウント用途、ツールのバージョン、直近で成功したビルドを記録し、サポート担当者が問題をすぐ特定できるようにします。

サポート依頼時は再現情報を準備

注文ID、ノードの都市、発生時刻、再現手順、機密情報を除いたログ、期待結果を送ってください。秘密鍵、完全なアクセストークン、証明書パスワード、未加工の設定ファイルは送信しないでください。

開始する

ノードを選び、小規模ビルドで接続経路全体を検証する

認証情報の確認、ツールバージョンの記録、テスト成果物の転送を終えてから、本番プロジェクトを専用Apple Silicon物理ノードへ移行します。