安全な接続ワークシート

クラウドMacを開発端末、GUIデスクトップ、CIキューに接続する

ZoneMiniは専有物理サーバーを提供しており、仮想マシンではありません。SSHでビルドコマンドを実行し、macOS画面共有でGUIタスクを処理したり、固定ノードをCI Runnerとして登録したりできます。まず接続情報を確認してから入口を選び、認証情報をチャット履歴やパイプラインログに残さないでください。

3つの入口
コマンドライン、GUI、自動化Runner
5つのノード
シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部
1つの原則
認証情報は人・用途・最小権限ごとに割り当てる
接続方法の全体像

タスクに応じて入口を選び、GUIデスクトップだけに頼らない

3つの方法は併用できます。日常の自動化にはSSHまたはRunnerを優先し、Xcodeの画面確認、システム設定の変更、GUI診断が必要な場合だけ画面共有を使用します。

LOW OVERHEAD

継続的なビルドとリモート管理に最適

リポジトリの取得、依存関係のインストール、テスト、Xcodeのコマンドラインビルド、ログ確認、成果物の同期、ディスク容量の確認に使用します。安定したスクリプトには鍵認証を使い、ノードの別名をローカルのSSH設定に登録しましょう。

  • スクリプト化・監査可能な操作に適している
  • 不安定なネットワークでもGUIより復旧しやすい
  • セッション維持ツールで長時間タスクを実行できる
初回接続の準備

接続情報を受け取ったら、まず6項目を確認する

接続失敗は、ホスト障害ではなくノードアドレス、ユーザー名、ネットワークポリシー、注文ステータスの不一致が原因であることが少なくありません。以下の順番で確認すれば、試行錯誤を繰り返さずに済みます。

  1. 01

    注文ステータスを確認する

    コンソールにログインし、インスタンスが引き渡し済みか確認します。現在の注文に対応するモデル、ノード、レンタル期間も確認してください。接続情報がそのインスタンスと一つずつ一致している必要があります。

  2. 02

    ノードアドレスを確認する

    コンソールに表示されたホストアドレスをコピーし、古いチケット、古いスクリプト、チームのチャット履歴にあるアドレスを使い回さないでください。複数ノードを使うチームでは、アドレスに用途のタグを付けましょう。

  3. 03

    ログインユーザー名を確認する

    SSHのユーザー名とGUIセッションのユーザー名は、入口によって異なる場合があります。デフォルトのユーザー名を推測せず、一時パスワードをスクリプトにハードコードしないでください。

  4. 04

    一時認証情報を準備する

    一時認証情報は初回ログイン専用です。ログインに成功したらすぐに更新し、新しい認証情報はチームが承認したパスワード管理手順で保管してください。

  5. 05

    ローカルネットワークを確認する

    現在のネットワークから対象ポートへのアウトバウンド接続が許可されているか確認します。企業ネットワーク、プロキシ、セキュリティソフトがSSHやGUI接続を制限する場合があるため、事前にネットワーク管理者へ確認してください。

  6. 06

    ホスト台帳を作成する

    ノード、用途、担当者、ホストフィンガープリント、認証情報のローテーション時期を記録します。初回接続後にホストフィンガープリントの変更警告を無視しないでください。

接続情報は機密情報です

一時認証情報、SSH秘密鍵、リポジトリトークン、署名証明書を公開質問、パイプラインの完全なログ、暗号化されていない文書に貼り付けないでください。サポート依頼には、機密情報を除去したコマンド出力だけを添付してください。

コンソールで接続情報を確認する
SSH接続手順

まずホストの身元を確認し、次に鍵認証へ切り替える

以下のコマンドにはプレースホルダーのみが含まれ、実際のノードアドレスや認証情報は含まれていません。プレースホルダーをコンソールの情報に置き換え、信頼できるネットワーク環境で実行してください。

STEP 01

ホストフィンガープリントを取得・確認する

初回接続前にED25519ホスト公開鍵を取得し、フィンガープリントを計算して引き渡し資料と照合します。確認せずに警告を無視しないでください。

STEP 02

専用の鍵を作成する

ZoneMiniノード専用の鍵ペアを作成します。秘密鍵は管理下のローカルデバイスに保管し、公開鍵をリモートの認証済み鍵リストに登録します。

STEP 03

分かりやすい別名を設定する

SSH設定にホストアドレス、ユーザー名、鍵のパス、セッション維持パラメータを保存し、毎回の手入力や異なるノードの混同を避けます。

STEP 04

確認後にパスワード依存を解除する

鍵認証でログインできることを確認してから、一時認証情報を更新します。鍵を検証する前に、唯一のログイン手段を削除しないでください。

ホストフィンガープリントの確認
ssh-keyscan -t ed25519 <node-address> > zonemini_hostkey
ssh-keygen -lf zonemini_hostkey
鍵を作成して接続
ssh-keygen -t ed25519 -f ~/.ssh/zonemini_ed25519
ssh-copy-id -i ~/.ssh/zonemini_ed25519.pub <user>@<node-address>
ssh -i ~/.ssh/zonemini_ed25519 <user>@<node-address>
~/.ssh/config
Host zonemini-build
  HostName <node-address>
  User <user>
  IdentityFile ~/.ssh/zonemini_ed25519
  ServerAliveInterval 30
  ServerAliveCountMax 3

macOS画面共有

デスクトップを確認する必要があるタスクにはGUIを使う

画面共有は、XcodeのGUIデバッグ、システム設定の確認、アーカイブのチェックに適しています。ビルドスクリプト、ログ収集、バッチ処理は引き続きSSHで行うことをおすすめします。

FINDER / CONNECT

Finderから接続を開始する

macOSのFinderで「移動」から「サーバへ接続」を選び、引き渡し資料に対応するサーバーアドレスを入力して、承認済みのユーザー名と認証情報でセッションに入ります。

アドレス形式の例 vnc://<node-address>
  1. 01

    サーバへ接続を開く

    Finderの「サーバへ接続」を使用し、出所不明のショートカットに認証情報を保存しないでください。

  2. 02

    認証情報を入力する

    ユーザー名とノードアドレスを確認してから認証情報を入力します。共同作業でも、同じ長期ログイン情報を共有しないでください。

  3. 03

    表示品質を調整する

    ネットワークが不安定な場合は、まず解像度または色品質を下げます。高解像度のデスクトップは転送量と入力遅延を増加させます。

  4. 04

    クリップボードの内容を制限する

    秘密鍵、完全なトークン、平文パスワードをコピーしないでください。セッション間で貼り付ける前に、対象ウィンドウと現在のユーザーを確認します。

  5. 05

    終了後にセッションをロックする

    クライアントを閉じただけではデスクトップからログアウトしたことにならない場合があります。作業後はセッションをロックし、不要になった機密ウィンドウを閉じてください。

クロスプラットフォームGUIアクセス

macOS以外のクライアントでは、プロトコル、ネットワーク、表示機能を先に確認する

WindowsまたはLinuxワークステーションでは、互換性のあるGUI接続ツールを準備する必要があります。クライアントによってショートカット、クリップボード、色、拡大縮小、多画面対応が異なるため、まず機密性のないタスクで検証してください。

クライアントの準備

対象の接続プロトコル、暗号化転送、カスタム解像度に対応したクライアントを選びます。インストール元はチームの審査を受け、常に最新バージョンを維持してください。

  • キーボードレイアウトと特殊キーの割り当てを確認する
  • クリップボードのオン・オフに対応しているか確認する
  • フルスクリーンの終了方法とセッションのロック方法を確認する

ネットワークの準備

まずDNS、ルーティング、対象ポートを確認してからGUIセッションをテストします。会社のプロキシ、出口ファイアウォール、Wi-Fiの切り替えがセッション切断の原因になる場合があります。

  • 安定した有線または信頼できるネットワークを優先する
  • 接続中にネットワークを頻繁に切り替えない
  • SSHを独立した診断経路として残す

表示設定

まず単一ディスプレイと中程度の解像度で検証し、その後少しずつ画面サイズを上げます。画面が真っ黒になる、または切れて表示される場合は、低い解像度に戻してセッションを再確立してください。

  • クライアントウィンドウのサイズに合わせて拡大率を調整する
  • 不要なアニメーションと透明効果を無効にする
  • 色精度が重要なタスクでは、まずローカル環境と比較する

クロスプラットフォーム接続の判断基準

安定して入力でき、ログを明瞭に読め、よく使うショートカットが正しく割り当てられ、安全にセッションを終了できる場合に限り日常のフローに組み込みます。完全にスクリプト化できるタスクは、SSHまたはCI Runnerを優先してください。

CI Runner接続

固定ノードに再現可能なキュータスクを任せる

Runnerには専用アカウント、専用作業ディレクトリ、制限付きトークンを使用します。まず最小構成のテストパイプラインを実行し、その後に署名付きビルド、キャッシュ、アーカイブを追加してください。

  1. 01

    専用の作業ディレクトリを作成する

    ソースコード、依存関係キャッシュ、ビルド中間ファイル、最終成果物を分けて、削除ルールの設定とディスク使用量の調査をしやすくします。

  2. 02

    制限付きRunnerを登録する

    トークンには対象リポジトリと必要な操作だけを許可します。個人アクセストークンを使い回したり、トークンをリポジトリやビルド出力に書き込んだりしないでください。

  3. 03

    キュータグを設定する

    Xcodeのバージョン、プロジェクト種別、モデル、タスク負荷に応じてタグを設定し、互換性のないタスクが誤った環境に割り当てられないようにします。

  4. 04

    テストとアーカイブを実行する

    まず依存関係の確認とユニットテストを実行し、その後にアーカイブします。失敗時は必要なログだけを残し、ユーザーディレクトリ全体を無条件にアップロードしないでください。

  5. 05

    成果物を返送してクリーンアップする

    成果物が対象ストレージに保存されたことを確認したら、一時認証情報、一時キーチェーン、期限切れキャッシュ、不要になったビルドディレクトリを削除します。

RUN / ARCHIVE / CLEAN 最小タスクの骨格
set -euo pipefail

WORK_DIR="$HOME/ci-work/project"
RESULT_DIR="$HOME/ci-results"

mkdir -p "$WORK_DIR" "$RESULT_DIR"
cd "$WORK_DIR"

git fetch --prune
git checkout "$CI_COMMIT_REF"

xcodebuild \
  -scheme "$CI_SCHEME" \
  -destination "generic/platform=iOS" \
  test

xcodebuild \
  -scheme "$CI_SCHEME" \
  -archivePath "$RESULT_DIR/App.xcarchive" \
  archive

find "$WORK_DIR" -name "*.tmp" -delete
入力:リポジトリ、ブランチ、制限付き環境変数 タスク:テスト、アーカイブ、ログ収集 成果物:アーカイブファイル、マスキング済みログ、終了ステータス
セキュリティチェックリスト

アクセス権をビルド依存関係として管理する

権限には担当者、用途、有効期限を設定します。長期間放置された共有アカウント、リポジトリトークン、一時ファイルは、固定ビルド環境の監査可能性を徐々に損ないます。

A1

鍵認証を有効にする

各メンテナーが専用の鍵を使用します。メンバーがプロジェクトを離れたら、他のメンバーのアクセスに影響を与えずに該当する公開鍵を削除します。

A2

共有アカウントを制限する

共有環境が必要な場合も、個人ログインと自動化アカウントを分けてください。Runnerに管理者の日常用アカウントを使わせないでください。

A3

トークンを定期的にローテーションする

リポジトリトークン、Runner登録トークン、一時アクセス認証情報のローテーションを記録し、無効なトークンは速やかに削除します。

A4

リポジトリ権限を最小限にする

ビルドタスクには必要なリポジトリとブランチの権限だけを付与します。成果物のアップロードとソースコードの読み取りには別の認証情報を使用できます。

A5

GUIセッションをロックする

デスクトップを離れる前にセッションをロックし、機密情報を含むウィンドウを閉じ、不要になったクリップボードの内容を消去します。

A6

不要な認証情報を削除する

タスク終了後に一時秘密鍵、ワンタイムトークン、一時キーチェーン、不要になった認証ファイルを削除します。

接続トラブル早見表

まず分類し、必要で役立つ証拠だけを集める

パスワード、アドレス、クライアントを勘で次々に変えないでください。まずエラーの種類、発生時刻、ローカルネットワーク、ノード、入口を記録し、該当する確認を行います。

SSH、画面共有、リモートセッションのよくある問題チェック表
症状 まず確認する項目 実行できる対処 サポート依頼に添付する情報
接続がタイムアウトする ノードアドレス、ローカルネットワーク、出口ルール、対象ポート 信頼できるネットワークに切り替える。ポートの疎通をテストする。古いアドレスを使っていないか確認する 発生時刻、ノード、クライアントのネットワーク種別、機密情報を除去した調査結果
認証に失敗する ユーザー名、鍵のパス、ファイル権限、認証情報が更新済みか 詳細なSSHログで使用された鍵を特定する。登録済み公開鍵を確認する エラー行、ユーザー名、鍵のフィンガープリント。秘密鍵や完全なパスワードは含めない
ホストフィンガープリントが変わった ノードアドレスの変更、インスタンスの再作成、ローカル別名の変更がないか 接続を停止する。コンソールでフィンガープリントを再確認する。確認後に記録を更新する ノード、旧フィンガープリント、新フィンガープリント、初回検出時刻
GUIセッションが黒い画面になる セッションがロックされていないか、表示解像度、クライアントの互換性 解像度を下げる。セッションを再確立する。SSHでシステム状態を確認する クライアントのOS、クライアントのバージョン、表示設定、機密情報を除去したスクリーンショット
解像度がおかしい クライアントの拡大率、多画面モード、ウィンドウサイズ 単一ディスプレイと中程度の解像度に戻し、設定を一つずつ復元する 希望する解像度、実際の解像度、拡大率、クライアント種別
セッションが頻繁に切断される Wi-Fiの切り替え、プロキシ、アイドルポリシー、回線の揺らぎ 安定したネットワークを使う。SSHにキープアライブを設定する。長時間タスクを永続セッションで実行する 切断頻度、継続時間、ネットワークの変化、関連ログの抜粋
ポートとルートの確認
nc -vz <node-address> 22
route -n get <node-address>
SSH詳細ログ
ssh -vvv zonemini-build 2>&1 | tee ssh-debug.log
サポート依頼用資料

サポートチームがすぐに調査を開始できるようにする

注文番号、ZoneMini M4 Core / ZoneMini M4 Plus / ZoneMini M4 Proのいずれか、ノード、発生時刻、接続方法、再現手順、期待する結果、機密情報を除去したログを提供してください。証明書の秘密鍵、リポジトリトークン、完全なパスワードはアップロードしないでください。

注文前の準備

タスクの入口、モデル、ノードを決めてから接続記録を作成する

用途、同時実行タスク数、必要メモリ、対象ノード、レンタル期間を準備します。既存の注文はコンソールで接続情報を確認し、設定についてはまずヘルプセンターを確認してください。