コマンドラインから確認を開始

まず信頼できるSSH接続を確立し、必要に応じてGUIリモートセッションを開始します

このガイドでは、ノードアドレスの確認、ホストフィンガープリントの検証、XcodeのGUI操作、コード転送、ネットワーク調整、安全な切断までを明確な手順に整理しています。コマンドライン作業はSSHを優先し、完全なmacOS GUIが必要な場合のみリモートセッションを確立します。

2 主な接続方法
6 初回接続時の確認項目
1 手順化されたトラブルシューティング
接続スケジュールプレート セッション経路
ローカルデバイス SSH認証 物理ノード
コマンドライン作業SSH
XcodeのGUI操作リモートセッション
コードと成果物Git / SFTP
接続方法の選択

作業内容に応じて接続経路を選び、すべての作業をGUIセッションで行わない

SSHは通信量が少なく、ビルド、ログ、依存関係、自動化タスクに適しています。GUIリモートアクセスは、Xcodeの操作、シミュレーターの確認、デスクトップでしか行えない設定に使用します。

優先チャネル

SSHコマンドライン

Git操作、依存関係のインストール、スクリプト実行、ログ確認、テストビルド、CIタスクに使用します。まずSSHでノードアドレス、認証情報、ホスト状態を確認してから、他の接続方法を利用します。

  • 長時間のビルドや自動化スクリプトに適している
  • GUIを切断してもバックグラウンドタスクは影響を受けない
  • コマンドのコピー、ログ保存、エラーの再現が容易
必要に応じて確立

GUIリモートセッション

XcodeのGUI操作、プロジェクト設定の確認、シミュレーターの監視、デスクトップアプリの操作に使用します。ネットワークが不安定な場合は、解像度、フレームレート、色品質を先に下げ、セッションを何度も新規作成しないでください。

  • マウス操作と完全なデスクトップが必要な作業に適している
  • 接続前に既存セッションが使用中でないか確認する
  • 終了後は明示的にログアウトし、ローカルの一時設定を削除する
初回SSH接続

アドレス、ユーザー名、鍵の権限、ホストフィンガープリントを一つずつ確認する

接続情報は、注文に対応するコンソールのインスタンス詳細から取得してください。チャット履歴、古いスクリーンショット、他人から転送されたテキストを使ってノードアドレスや認証情報を入力しないでください。初回接続時にホストフィンガープリントが表示されたら、まずインスタンス詳細の値と照合し、完全に一致してから承認します。

01

接続情報を取得

ノードリージョン、アドレス、SSHポート、ユーザー名、鍵の種類を確認し、すべてが同じ注文・同じ物理ノードの情報であることを確認します。

02

鍵の権限を制限

秘密鍵は現在のローカルユーザーだけが読み取れるようにします。クライアントが権限の広すぎることを警告した場合は、まずファイル権限を調整してから再接続します。

03

ホストフィンガープリントを検証

アルゴリズムの種類とフィンガープリント値を1文字ずつ比較します。一致しない場合は接続を停止し、古い記録を削除して警告を回避しないでください。

04

初回チェックを完了

ログイン後、ホスト名、現在のユーザー、システムバージョン、ディスク空き容量、Xcodeのパスを確認してから依存関係をインストールします。

コマンド実行例

まずログインを確認し、テストビルドとリリースフローを検証する

以下のアドレス、ユーザー名、パス、プロジェクト名は実行できないプレースホルダーです。使用時は必ずコンソールのインスタンス詳細と実際のプロジェクトの値に置き換えてください。

OpsVM接続検証ログ・サンプル
SSH → BUILD → RELEASE
$ ssh -i /path/to/private_key -p <端口> <用户名>@<节点地址>
The authenticity of host cannot be established.
ED25519 key fingerprint is <待与控制台核对的指纹>.
Continue connecting only after verification: yes

<用户名>@<主机名> % hostname
<实例详情中的主机名>

<用户名>@<主机名> % xcodebuild test \
  -workspace <项目工作区> \
  -scheme <测试方案> \
  -destination 'platform=macOS'
Test Suite '<测试套件>' passed
Executed <测试数量> tests, with 0 failures

<用户名>@<主机名> % bundle exec fastlane <流程名称>
[fastlane] Checking project configuration
[fastlane] Running tests
[fastlane] Exporting artifact
[fastlane] Finished without reported errors
SSH フィンガープリントがインスタンス詳細と一致する場合のみ続行します。
xcodebuild 範囲を限定したテストプランから始め、徐々に対象を広げます。
Fastlane 再現しやすいよう、出力にはマスキング済みログを使用します。
GUIリモートアクセス

明確なパラメーターで単一セッションを確立し、現在のネットワークに余裕を持たせる

GUIクライアントによって項目名は異なりますが、接続の考え方は同じです。アドレスとポートはインスタンス詳細から取得し、解像度と画質はローカルネットワークに応じて設定します。クリップボードとファイル共有は作業に必要な最小限だけ有効にしてください。

  1. 01

    まずノードとセッションの状態を確認

    コンソールで対象インスタンスが正常に稼働しているか確認し、残っているGUIセッションがリソースを占有していないか確認します。複数人で同じワークフローを使用する場合は、互いに切断しないよう、セッションの引き継ぎ方法をあらかじめ決めておきます。

  2. 02

    アドレス、ポート、認証情報を入力

    インスタンス詳細の接続パラメーターを一つずつコピーします。鍵、パスワード、復旧情報を共有メモ、公開コードリポジトリ、チケットのスクリーンショット、暗号化されていない同期フォルダーに保存しないでください。

  3. 03

    中程度の解像度と画質から開始

    初回は単一ディスプレイ、1920×1080以下の解像度、中程度の色品質を使用できます。入力と表示が安定してから段階的に上げ、高解像度・高フレームレート・高色深度を最初から同時に有効にしないでください。

  4. 04

    クリップボードとディレクトリ共有を制限

    テキストのクリップボードは必要な場合のみ有効にします。ディレクトリのマッピングは専用の交換ディレクトリに限定し、ローカルユーザーディレクトリ、鍵のディレクトリ、署名情報を含むパスを直接共有しないでください。

  5. 05

    切断時の動作を設定

    クライアント切断時に、タスクを保持するのか、デスクトップをロックするのか、セッションを終了するのか確認します。作業後は明示的な終了手順を実行し、クライアントウィンドウを閉じただけでセッションが終了したと判断しないでください。

ファイルとコードの転送

コードはバージョン管理、変更ファイルは差分同期、アーカイブは検証後に展開する

転送方法を選ぶ際は、追跡可能性、差分更新、ファイル権限、機密情報の露出範囲を同時に考慮します。非公開コードやビルド素材を一時的に移動するために、公開ダウンロードリンクを使わないでください。

Git

追跡可能なコードと設定を取得

リポジトリのコード、依存関係のロックファイル、レビュー可能な設定に適しています。まずリモートURLとブランチを確認してから取得し、非公開の認証情報は管理された方法で設定してリポジトリに書き込まないでください。

  • リモートと現在のブランチを先に確認
  • 依存関係のバージョンを固定し、ロックファイルを保持
  • ビルド成果物をソースリポジトリに逆方向でコミットしない
SFTP

データ、ログ、成果物を同期

リソースファイルの差分アップロード、マスキング済みログのダウンロード、ビルド成果物の転送に適しています。リモートの保存先を制限し、転送後に所有者、権限、サイズ、更新日時を確認します。

  • 専用の交換ディレクトリを使用
  • 大容量ファイルの転送後に完全性を確認
  • 不要になったコピーを作業終了後に削除
アーカイブの検証

固定データパッケージのダイジェストを比較

一度限りの納品素材、キャッシュ、アーカイブに適しています。送信側でダイジェストを生成し、ノード側で再計算して1文字ずつ比較します。結果が一致した場合のみ展開して後続処理に進みます。

  • 送信前にファイルサイズとダイジェストを記録
  • 隔離ディレクトリに展開して内容を先に確認
  • 出所不明のスクリプトやバイナリを拒否
安定性の最適化

まず画面負荷を下げ、ネットワークまたはクライアントの問題かを判断する

高解像度、高フレームレート、高色品質は同時に通信負荷を高めます。調整時は一度に1つのパラメーターだけを変更し、前後を比較して、本当の原因が複数の変更に隠れないようにします。

ネットワーク状況に応じたGUIリモートセッションのパラメーター調整
現象 最初の手順 次の手順 確認方法
マウス操作の遅延 解像度を下げる フレームレートを下げる ウィンドウを動かし、入力が同期するか確認
画面が頻繁に再描画される 色品質を下げる 動的デスクトップ効果を無効化 コードファイルをスクロールし、再描画範囲を確認
セッションが断続的に切断される 有線または安定したWi-Fiに切り替える 他の大容量通信タスクを一時停止 SSHセッションも維持して接続の継続性を確認
入力は正常だが画面が固まる 現在の描画が完了するまで待つ 元のセッションを再接続 複数のGUIセッションを並行して作成しない
優先度A 接続回線

有線ネットワークを優先し、Wi-Fiでは信号を安定させ、継続的な大容量通信を避けます。

優先度B 画面パラメーター

解像度、フレームレート、色品質の順に調整し、毎回1項目だけ変更して結果を記録します。

優先度C タスクの振り分け

ビルド、ログ、ファイル処理はSSHで行い、GUIセッションにはGUIが必須の操作だけを残します。

接続トラブルシューティング

ネットワーク、認証、セッション、画面の順に切り分け、前提条件を飛ばさない

各手順を終えるたびに再テストし、完全なエラーテキスト、発生日時、ノードリージョン、クライアントバージョンを保存します。「接続できない」だけの報告や、切り取ったスクリーンショット1枚だけを提出しないでください。

接続がタイムアウトした場合:まず何を確認するか

まずローカルネットワークが利用可能か確認し、ノードアドレスとポートが現在のインスタンス詳細のものか照合します。次に、ローカルファイアウォール、社内ネットワークポリシー、VPNが接続を遮断していないか確認します。SSHとGUIセッションが同時にタイムアウトする場合は、ネットワーク経路とノード状態を優先して調査し、GUIクライアントを何度も再インストールしないでください。

ホストフィンガープリントが変わった場合:なぜ無視してはいけないか

フィンガープリントの変更は、アドレスの入力ミス、別ノードへの接続、インスタンス情報の変更が原因の可能性があります。接続を停止し、コンソールで現在のアドレスとフィンガープリントを再確認し、注文IDとノードリージョンも確認します。新しいフィンガープリントの出所を確認できた場合のみ、ローカル記録を更新してください。

認証に失敗した場合:ユーザー名、鍵、権限の問題を見分ける方法

まずユーザー名の大文字・小文字がインスタンス詳細と一致しているか確認し、次にクライアントが同名の古いファイルではなく対象の鍵を実際に読み込んでいるか確認します。鍵ファイルの権限、形式、パスを確認し、エージェントや鍵管理ツールを使用している場合は、想定した認証情報が置き換えられていないか確認します。出所不明の認証情報を連続して試さないでください。

GUIセッションがブラックスクリーンになった場合:確認する順序

まずSSH接続を維持し、システムが応答しているか確認します。次に既存のGUIセッションの有無、画面パラメーターが高すぎないか、クライアントが現在の接続モードに対応しているかを確認します。単一ディスプレイと低めの解像度に下げて、元のセッションに再接続します。SSHが正常でも画面を利用できない場合は、クライアントバージョンとセッション時刻を記録してからチケットを提出してください。

セッションが競合する場合:複数人の接続による影響を防ぐ方法

チームで現在のセッション担当者と引き継ぎ時刻を明確にします。接続前に既存セッションを確認し、終了時はクライアントの切断またはログアウト操作を使用します。占有を解消するためにセッションを強制的に新規作成しないでください。バックグラウンドビルドを継続する必要がある場合は、GUIウィンドウを開いたままにするのではなく、継続実行可能なコマンドラインフローにタスクを移します。

調査情報を提出

チケットに少なくとも5種類の情報を含める

注文ID、ノードリージョン、問題発生日時、完全な再現手順、マスキング済みログ。GUIセッションに関する問題では、クライアント名、バージョン、解像度、ネットワーク種別も追加します。

コンソールにログインしてチケットを提出
安全な終了処理

セッションの終了はウィンドウを閉じるだけではありません。接続の痕跡と一時的な入口もまとめて処理します

作業完了後は、GUIセッションからログアウトし、不要なリスニングを停止し、認証情報の露出状況を確認して、ローカルとノード上の一時交換ファイルを削除します。

作業を保存してGUIリモートセッションを終了
バックグラウンドビルドを継続する必要があるか確認
不要になった転送ポートとトンネルを閉じる
ローカルの一時接続設定と交換ファイルを削除
ノード上の一時アーカイブとマスキング済みログのコピーを削除
鍵ファイルの権限と保存先を確認
漏えいが判明したら関連する認証情報を直ちにローテーション
復旧手順と今回の環境変更を記録
認証情報の取り扱い

漏えいしていないと確認できない場合は、漏えいしたものとして扱う

認証情報が公開リポジトリ、共有スクリーンショット、公開ダウンロードディレクトリ、管理されていないログに入った場合は、直ちに使用を停止してローテーションを完了します。公開コピーを削除してもローテーションの代わりにはなりません。内容がすでにキャッシュまたは複製されている可能性があるためです。

ポートの処理

作業用に一時作成した入口は作業終了時に閉じる

SSHトンネル、ポート転送、クライアントのバックグラウンドプロセス、ローカルプロキシを確認します。明確な用途が残っている入口だけを保持し、担当者、用途、終了条件を記録します。

環境記録

再現に必要な情報を残し、機密情報は移動する

システムバージョン、Xcodeのパス、依存関係のロックファイル、ビルドコマンド、エラー概要を保持し、秘密鍵、アカウントパスワード、復旧コード、一時交換パッケージ、マスキングされていないログを削除します。

専用の物理ノードを用意する

まず構成とノードを選択してデプロイします。ツールチェーンの準備中であれば、初回デプロイ手順を読み進めるか、ヘルプセンターで具体的な問題を確認できます。