接続ランブック

タスクに応じてSSHまたはブラウザのグラフィカルインターフェースを選択

コマンドラインでのビルド、自動化スクリプト、長時間実行するタスクにはSSHを優先します。Xcodeの操作、グラフィック出力の確認、デスクトップアプリの操作が必要な場合のみ、コンソールのデバイス詳細からブラウザのリモートセッションを開始してください。

DplyMiniではクラウド上の専有物理Macを提供しています。1つの注文につき1台の物理ノードが割り当てられ、仮想マシンではありません。接続前にホストアドレス、ユーザー名、ホストフィンガープリントを確認してから、プロジェクトの転送やビルドを開始してください。

SSH スクリプト、ビルド、バックグラウンドタスク
ブラウザインターフェース Xcodeとグラフィカルデスクトップ操作
5つのノード 接続情報は注文ごとに提供
DEVICE CONNECTION SHEET RUN-SSH-GUI
接続情報を提供済み 1注文 = 1専有物理ノード
コマンドライン経路
SSH公開鍵認証
グラフィカル経路
コンソールのデバイス詳細から開始
初回確認
ホストアドレス、ユーザー名、フィンガープリント
推奨タスク
xcodebuild、fastlane、CI Runner
確認 認証 接続 実行 終了
接続方法の概要

まず、本当にグラフィカルインターフェースが必要か判断する

接続方法によってデバイスの設定は変わりませんが、作業効率、ネットワークへの敏感さ、セッション復旧の方法は変わります。継続的なタスクはバックグラウンドで実行し、デスクトップを表示する必要がある作業にだけグラフィカルセッションを使いましょう。

基本の方法

SSH:繰り返し実行・記録できるタスクに適しています

依存関係のインストール、コードの取得、コンパイル、テスト、ログ確認、ファイル検証にはSSHが適しています。ネットワークが一時的に不安定になっても、tmux、screen、CI Runnerを使えばデバイス上でタスクを継続できます。

  • xcodebuild、fastlane、スクリプト化したパイプラインに適しています
  • コマンド、出力、エラーコードをログに残しやすい
  • ほとんどの操作でデスクトップ画面の継続的な転送が不要
必要なときに使用

ブラウザのグラフィカルインターフェース:デスクトップの表示が必要な作業に適しています

Xcodeを開く、シミュレーター画面を確認する、グラフィカルツールを調整する、デスクトップアプリの状態を確認するといった作業では、コンソールのデバイス詳細からリモートセッションを開始してください。継続的なビルドを、ブラウザタブを開き続けることに依存させないでください。

  • 短時間の対話操作、設定確認、グラフィカルアプリの操作に適しています
  • 快適さはローカルネットワークの安定性と往復遅延に左右されます
  • 操作後はデスクトップをロックし、セッションを明示的に終了してください

簡単な判断:コマンドで表現でき、繰り返し実行する手順はSSHを優先します。macOSのグラフィカルインターフェースを見たり操作したりする必要がある場合だけ、ブラウザのリモートアクセスを使用してください。

SSHの準備

初回接続前に、4つの識別情報をすべて確認する

アドレスを取得してすぐに複数のユーザー名を試したり、不明なフィンガープリントを繰り返し受け入れたりしないでください。まずコンソールのデバイス詳細で提供情報を確認し、ローカルターミナルから接続します。

  1. 01

    個人用SSH鍵を作成する

    操作者ごとに自分の鍵を使用し、チームメンバー間で秘密鍵をコピーしないでください。最新の鍵タイプを使用し、秘密鍵にはローカルの保護パスフレーズを設定することをおすすめします。

    ssh-keygen -t ed25519 -C "deploymini-access"
  2. 02

    公開鍵の内容だけを提出する

    公開鍵は通常、 ~/.ssh/id_ed25519.pubにあります。秘密鍵ファイルをアップロードしたり、チャットに貼り付けたり、コードリポジトリやチケットの添付ファイルに入れたりしないでください。

    cat ~/.ssh/id_ed25519.pub
  3. 03

    ホストアドレスとユーザー名を確認する

    アドレス、ポート、ユーザー名は現在の注文のデバイス詳細に記載されたものを使用してください。他の注文の接続コマンドを流用したり、ノード名からアドレスを推測したりしないでください。

    ssh -p <port> <user>@<host>
  4. 04

    初回接続時のホストフィンガープリントを確認する

    ターミナルで初めてホストを信頼するか尋ねられたら、表示されたフィンガープリントをデバイス詳細の情報と一つずつ照合してください。一致しない場合は接続を中止してチケットを提出し、yesを直接入力しないでください。

    SHA256:<fingerprint-from-device-details>

鍵のローテーション方針

メンバーがプロジェクトを離れたとき、デバイスを引き継いだとき、または一時的な協業が終わったときは、該当する公開鍵を直ちに削除してください。1つの共有鍵でチーム全体を長期間運用しないでください。

ローカル設定の方針

ローカルのSSH configでデバイスにエイリアスを設定できますが、ホスト、ポート、ユーザー名は引き続きコンソールに表示される現在の提供情報を使用してください。

異常時の対応方針

known_hostsのエントリが突然変わった場合は、まず注文またはアドレスが変更されていないか確認してください。確認前に古い記録を削除して新しいフィンガープリントを受け入れないでください。

ブラウザリモートアクセス

デバイス詳細から開始し、セッションリンクを保存しない

  1. コンソールにログイン 現在の注文に対応するデバイス詳細を開き、ノード、モデル、接続状態を確認します。
  2. ブラウザセッションを開始 デバイス詳細のリモートアクセス操作を使用します。一時的なセッションアドレスをブックマークしたり、他の人に転送したりしないでください。
  3. 表示パラメータを調整 ツールバーで解像度の拡大縮小、全画面表示、クリップボードを操作できます。高解像度では画面転送量が増えるため、接続が不安定な場合はまず表示サイズを下げてください。
  4. 終了してデバイスをロック 操作が終わったら、まず作業を保存し、アプリを終了してデスクトップをロックし、ブラウザセッションを閉じてください。

クリップボード管理

クリップボードは短いテキストや一度だけ使うコマンドに適しています。秘密鍵、完全な決済情報、長い機密設定の転送には使用しないでください。コピー後はローカルとリモートのクリップボードを消去します。

解像度と全画面表示

まず現在のウィンドウに合った拡大縮小率を使用します。細かな操作が必要な場合だけ全画面表示にし、入力遅延が大きくなったら全画面表示を解除して解像度を下げ、接続状態を再確認してください。

接続とビルドのデモ

ログイン、ビルド、成果物の受け渡しを確認可能な出力に分ける

ここでは典型的なSSHセッションを示します。実際のアドレス、ユーザー名、プロジェクトパス、Scheme、エクスポート設定は注文とプロジェクトによって異なるため、サンプルのパラメータをそのままコピーしないでください。

build-session — ssh
SESSION ACTIVE
$ ssh -p <port> <user>@<host>
The authenticity of host cannot be established.
ED25519 key fingerprint is SHA256:<fingerprint>
Are you sure you want to continue connecting? yes

Connected to dedicated physical Mac mini
$ sw_vers
ProductName:            macOS
ProductVersion:         <installed-version>

$ cd ~/work/ExampleApp
$ xcodebuild \
  -workspace ExampleApp.xcworkspace \
  -scheme ExampleApp \
  -configuration Release \
  build

** BUILD SUCCEEDED **

$ bundle exec fastlane ios build
[fastlane] Resolving project configuration
[fastlane] Running archive workflow
[fastlane] Build artifacts ready for verification

$ shasum -a 256 ./output/ExampleApp.ipa
<checksum>  ./output/ExampleApp.ipa
チェックポイント A

ビルド前に環境を記録する

macOS、Xcode、Ruby、依存関係管理ツール、プロジェクトのコミットバージョンを記録します。差異が発生した場合は、すべての依存関係をすぐに再インストールするのではなく、まず環境記録を比較してください。

チェックポイント B

ビルド後に成果物を検証する

出力パス、ファイルサイズ、チェックサム、主要なビルドログを記録します。ダウンロード後、受信側でもう一度チェックサムを計算し、転送中に変更がなかったことを確認してください。

ネットワーク診断

経路の順番に沿って確認し、複数の変数を同時に変更しない

一度に1つの層だけを検証し、各手順の結果を記録します。これにより、問題がローカルの名前解決、出口ネットワーク、アクセスルール、認証情報、デバイス側サービスのどこで発生したかを判断できます。

  1. 01

    DNSとアドレス

    接続コマンドがデバイス詳細に現在表示されているホストアドレスを使用していることを確認します。ホスト名を使う場合は、想定アドレスに解決できるか確認し、ローカルのhostsによる上書きを除外してください。

    nslookup <host>
  2. 02

    ローカルの出口ネットワーク

    現在のネットワークで外部接続を確立できることを確認します。企業ネットワーク、ゲストWi-Fi、プロキシ、VPNによって出口経路が変わることがあるため、正常なことが分かっているネットワークに切り替えて比較してください。

    traceroute <host>
  3. 03

    ファイアウォールと宛先ポート

    注文で提供されたポートを確認し、ローカルのセキュリティソフトや組織のネットワークポリシーによるブロックがないか調べます。すべてのデバイスがデフォルトのSSHポートを使うとは限りません。

    nc -vz <host> <port>
  4. 04

    ユーザー名と認証情報

    「ポートに到達できない」状態と「認証失敗」を区別してください。認証に失敗した場合は、ユーザー名、公開鍵のパス、鍵の権限、ssh-agentを確認し、異なるパスワードを連続して試して原因を調べないでください。

    ssh -vv -i ~/.ssh/id_ed25519 <user>@<host>
  5. 05

    リモートサービスの状態

    ポートに到達できるのにセッションがすぐ切断される場合は、切断前に表示された完全なエラーを記録します。ブラウザセッションに異常がある場合は、SSH接続がまだ可能かも確認し、グラフィカル経路の問題かデバイス全体の状態かを切り分けてください。

    Connection reset | timeout | permission denied
  6. 06

    ノードと注文の状態

    最後にコンソールへ戻り、注文、ノード、デバイス情報を確認します。すべてのノードは365日、年間を通じて稼働しています。個別の接続可否はコンソールにリアルタイムで表示される状態を基準にしてください。

    コンソールの状態を確認

pingだけを結論の根拠にしない。一部のネットワークではICMPが制限されますが、SSHの宛先ポートには正常に接続できる場合があります。判断時は、名前解決の結果、宛先ポートのテスト、SSHの詳細出力をすべて記録してください。

セッションの安全性

すべてのアクセスを具体的な操作者まで追跡可能にする

専有物理マシンはリソース競合を減らしますが、チーム内のアクセス管理に代わるものではありません。鍵、一時的な認証情報、プロジェクトデータ、リモートデスクトップは、引き続き最小権限で管理してください。

アクセス管理の基本

個人鍵で始め、不要になったら能動的に無効化する。

  • 1人1鍵:複数のメンバーで同じ秘密鍵を長期間共有しないでください。
  • 離席時は画面をロック:ブラウザセッションを使用していないときはデスクトップをロックし、作業後は明示的に終了してください。
  • 共有アカウントを制限:現在のタスクに必要なメンバーにだけアクセス権を付与してください。
  • 一時的な認証情報を無効化:タスク終了後に一時公開鍵、トークン、環境変数を削除してください。
  • ログは先にマスキング:提出前に鍵、トークン、個人情報、完全な決済情報を削除してください。
送信禁止

秘密鍵と有効なアクセストークン

サポート担当者が接続問題を調査する際、あなたの秘密鍵は必要ありません。メール、チャット、コードリポジトリ、チケットの添付ファイルで秘密鍵の内容を送信しないでください。

提供を推奨

エラー原文と機密情報を除いたデバッグ出力

エラーの種類、コマンドパラメータの構造、発生時刻、クライアントバージョンを残し、ホストアドレス、ユーザー名、プロジェクト名、機密値は明確なプレースホルダーに置き換えてください。

パフォーマンスのヒント

対話操作は経路の安定性、継続タスクはデバイス側の実行で判断する

ブラウザのグラフィカルインターフェースの快適さは、往復遅延、ジッター、利用可能な帯域幅に大きく左右されます。一方、コンパイル速度はプロジェクト、キャッシュ、デバイス構成により大きく変わるため、分けて判断してください。

デスクトップ操作には安定した経路を優先

チーム、コードリポジトリ、成果物ストレージまでの経路全体に適したノードを選びます。短時間の最低遅延が、セッション全体の安定性を意味するとは限りません。ジッターやパケットロスも入力操作に影響します。

大容量ファイルは分割して転送・検証

素材、モデル、ビルド成果物は分割して転送します。転送前後にファイル数、合計サイズ、チェックサムを記録し、失敗時は差分のある部分だけを再転送してください。

継続的なビルドはバックグラウンドタスクに任せる

長時間のコンパイル、テスト、エンコードはデバイス側のバックグラウンドで実行し、ログをファイルに書き込みます。ブラウザを閉じたりローカルネットワークが不安定になったりしても、タスクが中断されないようにしてください。

短時間の操作 ブラウザのグラフィカルインターフェース
繰り返し可能な操作 SSHスクリプト
継続実行 バックグラウンドタスクまたはCI Runner
大容量ファイルの転送 分割して処理・検証
SUPPORT HANDOFF SHEET 6 REQUIRED FIELDS
サポートへの引き継ぎ

調査にそのまま使える情報を提出する

前述の手順で接続問題を特定できない場合は、コンソールから該当する注文のチケットを提出してください。情報が詳しいほど、サポートチームは問題を再現し、どの層で発生しているか判断しやすくなります。

注文番号 デバイスと提供記録の特定に使用
ノード コンソールに表示されたノード名を記入
発生時刻 タイムゾーンを含め、継続しているかどうかを記載
クライアント OS、ターミナルまたはブラウザとバージョン
再現手順 正常な状態からエラーに至る操作順序
機密情報を除いたログ エラー原文を残し、機密情報を削除

稼働中の問題は注文チケットへ

デバイスに接続できない、セッションが繰り返し切断される、提供情報に異常がある場合は、コンソールの該当する注文からチケットを提出してください。注文情報を複数のメールスレッドに分散させないようにしましょう。

一般的な問い合わせはメールで送信

まだ注文していない場合や接続方法を確認したい場合は、想定するタスク、対象ノード、クライアント環境、予定レンタル期間を明記し、support@deploymini.comまでお送りください。

最初の専有物理Mac miniを準備する

構成と5つのノードのいずれかを選択し、注文完了後にコンソールで接続情報を確認します。初回ログインでは、このページの順序に従ってホストアドレス、ユーザー名、フィンガープリントを確認してください。