安全な接続とツールチェーンの検証

VNCとSSHでクラウドMacに接続

ノードの状態とホストフィンガープリントを確認してから、GUIまたはコマンドラインのセッションを開始します。初回ログイン、鍵設定、Xcodeビルド検証、リモート操作の最適化、トラブルシューティングを網羅します。

接続先、ユーザー名、一時認証情報は、注文後のノード確認が完了してから提供されます。利用可否と接続情報はコンソールの最新表示に従ってください。

開始前に

6つの接続条件を確認

パスワードを何度も試す前に、ノード、リージョン、認証情報、ローカルネットワークを確認しましょう。引き渡し、認証、ネットワークの問題をすばやく切り分けられます。

ノードの状態

コンソールにログインし、インスタンスが接続可能な状態か確認してノードIDを記録します。初期化中のノードでは、未確認のホストフィンガープリントを保存しないでください。

正常な状態を確認して接続

ノードのリージョン

注文リージョンとインスタンスのリージョンが一致しているか確認します。現在はシンガポール、日本(東京)、韓国(ソウル)、香港、米国東部、米国西部の6リージョンに対応しています。

Region / Node ID

ユーザー名と一時認証情報

コンソールに表示されたユーザー名を大文字・小文字まで正確にコピーします。初回ログイン後はすぐに一時パスワードを変更し、SSHには鍵認証を優先して設定してください。

通常のメールで認証情報を転送しない

ローカルネットワーク

まずは安定した有線接続または信頼できるWi-Fiでテストします。企業プロキシ、ゲストネットワーク、公衆Wi-FiではSSHやVNCのポートが制限される場合があります。

VPNとプロキシの影響を先に確認

システムファイアウォール

使用するクライアントの外向き接続をローカルファイアウォールが許可しているか確認します。オフィスネットワーク経由の場合は、管理者に宛先アドレスとポートのポリシーを確認してもらってください。

SSH 22 / VNC 5900

接続情報の整合性

ホストアドレス、ポート、ユーザー名、リージョンの4項目を比較します。以前のノードのクライアント設定を、新しく割り当てられた物理ノードにそのまま使わないでください。

新しいノードには新しい接続設定を作成
セキュリティ境界

接続情報はコンソールからのみ取得してください。秘密鍵、完全なパスワード、アクセストークン、未マスキングのビルドログを一般的な文書やコードリポジトリに保存しないでください。

グラフィカルインターフェース

VNCで初回GUI接続を行う

VNCはXcodeのGUI、署名済みアーカイブの確認、デスクトップ操作が必要な作業に適しています。初回接続では、アドレス、認証、画質、終了設定を順番に行います。

  1. 01

    コンソールに表示されたアドレスとポートを入力

    VNCクライアントで新しい接続を作成し、ホストアドレスを一字ずつ正確にコピーします。コンソールにカスタムポートが表示された場合はその値を使い、推測したり以前のインスタンスの設定を流用したりしないでください。

    チェックポイント:クライアント設定のリージョン表示が注文リージョンと一致していること。
  2. 02

    ノードのユーザー名で認証

    コンソールに表示されたノードのユーザー名と一時認証情報を入力します。連続して失敗した場合はいったん中止し、ユーザー名をコピーし直してキーボードレイアウトを確認してください。繰り返しの誤入力によるセキュリティ制限を避けられます。

    チェックポイント:認証情報の前後にスペースや改行が含まれていないことを確認。
  3. 03

    ネットワーク経路に合わせて画質を調整

    まずは自動調整解像度と中程度の色品質で安定した基準を作ります。大陸間接続では解像度、色深度、リフレッシュレートを下げ、安定後に一つずつ画質を上げてください。

    推奨設定:1920 × 1080、スケーリング100%、動的画質オン。
  4. 04

    機密情報を含まない内容でクリップボードを検証

    通常のテキストをコピーし、ローカルとリモート間の双方向クリップボードが想定どおり動作するか確認します。パスワード、秘密鍵、アクセストークンでテストしないでください。

    注意点:チーム共有環境では、必要に応じてクリップボード同期を無効にしてください。
  5. 05

    セッションを終了し、タスクを直接中断しない

    ウィンドウを閉じる前に、ビルドがフォアグラウンドで実行中でないか確認します。継続的なタスクはCI runner、launchd、またはターミナルセッション管理ツールに任せ、VNC切断でプロセスが終了しないようにしてください。

    チェックポイント:終了後、コンソールでノードが正常に稼働していることを確認。
コマンドラインアクセス

SSHで監査可能な開発環境を構築

SSHはリポジトリ同期、依存関係のインストール、自動ビルド、ログ収集に適しています。初回接続では警告を急いで無視せず、ホストフィンガープリントを確認し、長期的な権限を最小化することが重要です。

フィンガープリントが一致しない場合は直ちに停止

ローカル記録を削除してそのまま接続を続けないでください。ノードの再インストール、再割り当て、アドレス変更の有無を確認し、コンソールのチケットで照合してください。

01

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

初回接続時は、端末に表示されたフィンガープリントとコンソールの情報を一つずつ比較します。ノードアドレスが同じでもフィンガープリントが変わった場合は、警告を無視せずセキュリティインシデントとして扱ってください。

02

鍵認証を優先

メンバーごと、また自動化タスクごとに異なる公開鍵を使用します。秘密鍵は管理対象の端末または鍵管理システムに保管し、ノードの共有ディレクトリへアップロードしないでください。

03

ファイルとコマンドの権限を最小化

秘密鍵ファイルは現在のユーザーだけが読み取れる権限に設定します。CIタスクにはビルドに必要なディレクトリとコマンドだけを許可し、管理者権限を標準の実行方法にしないでください。

04

一時パスワードを更新

初回ログイン後すぐに、専用の強力なパスワードを設定します。鍵認証が正常に動作することを確認してから、チームの方針に沿ってパスワード認証を制限してください。

専用SSH鍵を生成

ssh-keygen -t ed25519 -a 64 -f ~/.ssh/hexvm_node
chmod 600 ~/.ssh/hexvm_node
ssh-add ~/.ssh/hexvm_node

メンバー、CI runner、一時的な運用作業ごとに鍵を生成すると、個別に無効化できます。

初回接続を確立

ssh-keyscan -p "$NODE_PORT" "$NODE_HOST"
ssh -i ~/.ssh/hexvm_node \
  -p "$NODE_PORT" "$NODE_USER@$NODE_HOST"

出力されたフィンガープリントを先に検証してから、ホスト情報を受け入れます。変数の値はコンソールからコピーし、実際の認証情報をスクリプトに記載しないでください。

開発ツールチェーンの検証

SSHログインからアーカイブ成功まで

接続後は、バージョン確認、テストビルド、アーカイブコマンドで環境を検証します。まず小規模なチェックを実行してから、完全なパイプラインに組み込みましょう。

hexvm-node — zsh — 120 × 34 SSH
$ssh -i ~/.ssh/hexvm_node "$NODE_USER@$NODE_HOST"
公開鍵で認証されました。
最終ログイン:承認済みネットワークからの現在のセッション
$sw_vers && xcodebuild -version
ProductName: macOS
Xcode 16.x
$xcodebuild test -scheme MobileApp -destination 'platform=macOS'
** TEST SUCCEEDED **
$bundle exec fastlane archive
署名設定を解決中…
アーカイブ成果物をエクスポート中…
アーカイブが正常に完了しました

まずバージョンを確認

macOS、Xcode、コマンドラインツールのバージョンを記録し、対話型ターミナルとCI runnerで同じツールチェーンが選択されていることを確認します。

次に最小限のテストを実行

まず単一のschemeまたはテスト対象を実行し、依存関係、署名、環境変数の問題を切り分けてから、ワークスペース全体へ拡張します。

最後にアーカイブへ進む

アーカイブ成功後、成果物のパス、ファイル権限、ログのマスキングルールを確認してから、自動化パイプラインへコマンドを移行します。

ネットワーク遅延の目安

6つのノードリージョンの往復遅延中央値

以下のデータはリージョン選定の初期判断用であり、すべてのネットワークで同じ結果になるとは限りません。正式決定前に、実際のオフィスネットワークとCI出口から繰り返しテストしてください。

測定時間帯 平日の現地時間 14:00–16:00
ネットワーク条件 現地の固定回線、VPNとプロキシを無効化
集計方法 各経路20回のICMP往復時間の中央値
単位 ms
主要クライアント測定地点からHexVMの6ノードリージョンまでのネットワーク遅延中央値
クライアント測定地点 シンガポール 日本(東京) 韓国(ソウル) 香港 米国東部 米国西部
北京の固定回線 78 ms 54 ms 47 ms 42 ms 198 ms 146 ms
上海の固定回線 69 ms 41 ms 49 ms 35 ms 190 ms 132 ms
台北の固定回線 48 ms 32 ms 43 ms 24 ms 181 ms 112 ms
マニラの固定回線 39 ms 71 ms 76 ms 36 ms 214 ms 139 ms
ロサンゼルスの固定回線 177 ms 104 ms 119 ms 151 ms 68 ms 21 ms
ニューヨークの固定回線 231 ms 168 ms 181 ms 205 ms 19 ms 73 ms
< 60 ms

継続的なGUI操作に適しています

キーボード入力、ウィンドウ切り替え、通常のXcode操作はおおむね快適ですが、パケットロスとジッターも確認してください。

60–140 ms

ビルドと軽い操作に適しています

画質を下げればGUI操作も可能です。コマンドラインビルド、ログ確認、CIタスクへの影響は通常大きくありません。

> 140 ms

コマンドラインと自動化を優先

大陸間接続では、継続作業をSSH、CI runner、バックグラウンドタスクに任せ、VNCは必要な確認に限定することをおすすめします。

実際の遅延は、利用中の通信事業者、国際回線、ルート変更、オフィスプロキシ、Wi-Fi品質、同時間帯のトラフィックに左右されます。リージョン一覧の構成は通常利用できますが、実際の利用可否はコンソールの最新表示に従ってください。

操作環境の最適化

最高画質ではなく、安定したリモートセッションを実現

対話操作、継続タスク、大容量ファイル転送を分けて処理すると、ネットワークの揺らぎによるビルドへの影響を抑えられます。

01

単一画面の基準設定から始める

まずは単一画面 1920 × 1080 で安定した基準を作ります。高遅延の経路では、いきなりデュアルディスプレイ、高倍率表示、頻繁な動的調整を有効にしないでください。

  • 文字が小さい場合は、解像度をむやみに上げずシステムの拡大率を調整します。
  • モバイル回線ではウィンドウサイズを固定し、画面の再描画を減らします。
02

ネットワーク状況に合わせて色品質を選ぶ

コード編集、ビルドログ、設定作業に最高の色精度は必要ありません。回線が不安定な場合は、まず色深度と画質を下げて入力遅延を確認します。

  • デザイン確認や動画作業では一時的に画質を上げられます。
  • 通常の開発では、適応圧縮と静的な背景を優先します。
03

不要な音声・映像転送を停止

リモート開発の中心はコード、ターミナル、ビルド状態です。使用していない音声、カメラのリダイレクト、アニメーションを無効にすると、帯域幅を削減できます。

  • VNCセッションで高ビットレートのメディアを再生しないでください。
  • 不要なデスクトップ効果や継続更新する監視ウィンドウを閉じます。
04

継続タスクを対話セッションから切り離す

長時間のビルド、テスト、依存関係のダウンロードは、独立したターミナルセッション、CI runner、またはシステムタスクで実行します。VNCやSSHが切断されてもタスクが終了しないようにしてください。

  • タスクごとに専用ログファイルへ出力し、終了コードを記録します。
  • 再接続後はまずプロセス状態を確認し、同じビルドを重複起動しないでください。
05

大容量ファイルは再開可能な方法で転送

リポジトリ、キャッシュ、ビルド成果物には、差分転送と検証に対応した方法を使います。GUIのクリップボードで大容量ファイルを移動したり、機密成果物を公開場所に置いたりしないでください。

  • 大量の小さなファイルは転送前に圧縮し、往復回数を減らします。
  • 完了後にファイルサイズ、ハッシュ、アクセス権を検証します。
06

キャッシュを適切な場所に置く

依存関係キャッシュとDerivedDataは、プロジェクト、ブランチ、ツールチェーンのバージョンごとに分離します。ヒット率が下がった場合は、まずキャッシュキーを分析し、ディスク使用量を無制限に増やさないでください。

  • 不要なキャッシュと古いアーカイブを定期的に削除します。
  • ディスク容量が不足したら、まず大きなディレクトリを特定してから削除します。
トラブルシューティング

症状から接続問題を切り分ける

一度に変更する変数は1つにし、ノードID、リージョン、発生時刻、完全なエラーテキストを記録します。これにより、ローカル、ネットワーク、認証、ノード側のどこに問題があるか判断できます。

接続タイムアウト:クライアントが長時間応答しない
  1. コンソールでノードの状態と接続先アドレスに変更がないか確認します。
  2. ポートを確認し、ローカルVPNまたはプロキシを一時的に無効にして再テストします。
  3. 家庭回線とモバイルホットスポットで個別にテストし、オフィスネットワークによる外向き接続の制限かどうかを判断します。
  4. タイムアウトの発生時刻、リージョン、クライアントのネットワーク、対象ポートを記録してから、コンソールのチケットを送信します。
認証失敗:ユーザー名、パスワード、鍵が拒否された
  1. コンソールに表示されたユーザー名をコピーし直し、大文字・小文字と前後のスペースを確認します。
  2. 現在のノードの認証情報を使用していることを確認します。以前のインスタンスに保存したパスワードや鍵は使わないでください。
  3. SSH鍵で失敗する場合は、秘密鍵のパス、ファイル権限、対応する公開鍵の設定を確認します。
  4. 連続して失敗したら再試行を止め、コンソールのチケットで照合を依頼してください。完全な認証情報をメールで送らないでください。
画面が途切れる:接続できるが入力遅延が大きい
  1. 単一画面の 1920 × 1080に下げ、高い色品質と音声・映像転送を無効にします。
  2. ローカルWi-Fiの信号、パケットロス、バックグラウンドのダウンロードを確認し、まず有線接続へ切り替えます。
  3. VNCとSSHの応答を比較します。SSHが正常なら、GUIのエンコードと表示設定を優先して調整します。
  4. 大陸間アクセスでは長時間のビルドをバックグラウンドで実行し、VNCは重要な画面の確認だけに使います。
ホストフィンガープリントの変更:SSHで身元警告が表示される
  1. 直ちに接続を停止し、チェックを回避するコマンドを使わないでください。
  2. ノードの再割り当てや再インストールの有無、または接続先アドレスが古い設定のものではないか確認します。
  3. コンソールから現在のフィンガープリントを再取得し、一つずつ照合します。
  4. 原因を確認できない場合は、ノードID、リージョン、マスキング済みの警告文を添えてコンソールのチケットを送信します。
ポートに到達できない:ネットワークテストで拒否される
  1. プロトコルとポートの組み合わせを確認し、SSHポートをVNCクライアントに入力しないでください。
  2. ローカルファイアウォール、企業ネットワークの出口ポリシー、セキュリティソフトの外向きルールを確認します。
  3. 別の独立したネットワークから同じアドレスとポートをテストし、特定の通信事業者経路の問題か判断します。
  4. 複数のネットワークから到達できない場合は、テスト結果と影響範囲を記載してコンソールのチケットを送信します。

チケット送信前に準備する情報

ノードID ノードリージョン 問題の発生時刻 ローカルネットワークの種類 クライアントとバージョン 完全な再現手順 マスキング済みエラーログ 影響範囲

秘密鍵、完全なパスワード、アクセストークン、機密性の高い署名情報を含むログは送信しないでください。さらにサポートが必要な場合は、コンソールからチケットを送信するか、 support@hexvm.comまでメールしてください。

専用Apple Siliconノード

専用Macを選択し、約4分で接続開始

1件の注文につき、仮想マシンではない専用のMac mini物理ノードを1台提供します。シンガポール、日本(東京)、韓国(ソウル)、香港、米国東部、米国西部の6リージョンで365日稼働します。

料金はすべて米ドル(USD)で決済されます。ノードとリージョンの実際の利用可否は、コンソールの最新表示に従います。