リモートアクセスガイド

SSHでタスクを実行し、VNCでGUIを操作

LemonVMでは専用のMac mini物理ノードを提供します。コマンドラインのビルド、ログ収集、自動化にはSSH、XcodeのGUI操作やリモート編集、完全なデスクトップが必要な作業にはVNCを使用します。接続前にコンソールからホストアドレス、ポート、ユーザー名、初期認証情報を取得してください。

2 種類の接続方法 5 つの選択可能な拠点 1 注文につき専用物理ノード1台
接続ビューア LEMON SLICE / REMOTE
パラメータ確認済み
コマンドラインSSH
GUIVNC
ホストコンソールで提供
接続情報注文ごとに独立
SG シンガポール JP 東京 KR ソウル HK 香港 US-W 米国西部
接続方法を選ぶ

作業内容に合わせて選ぶ

同じクラウドMacでコマンドラインとGUIの作業を同時に行えます。安定した運用では、長時間タスクと診断をSSH、デスクトップを見ながら行う操作をVNCに任せます。

低い操作負荷

SSH:ビルド、自動化、ログ

次の作業に適しています: xcodebuild、fastlane、依存関係のインストール、リポジトリ同期、ログ確認、バックグラウンドスクリプト。ネットワークが一時的に不安定でも、セッション維持ツールを使えばリモートタスクを継続できます。

用途
コマンド、スクリプト、継続的なビルド
メリット
帯域使用量が少なく、診断情報が充実
制限
macOSのGUIは利用できません
完全なデスクトップ

VNC:Xcode、編集、ビジュアル操作

XcodeのGUI、シミュレータ、素材管理、編集タイムラインなど、デスクトップの状態を確認する必要がある作業に適しています。遅延が大きい場合は、再接続を繰り返すのではなく、まず画質と解像度を下げてください。

用途
グラフィック開発、編集、操作確認
メリット
リモートmacOSデスクトップを完全に操作
制限
遅延、揺らぎ、帯域の影響を受けやすい
SSH設定

5つのパラメータを確認してから初回接続

別の注文のアドレスやポートを流用しないでください。現在のサービスに表示される接続情報を毎回確認してください。

01

ホストとポートを確認

現在のサービス詳細からホストアドレスとSSHポートをコピーします。アドレス、ポート、ノードで接続先が決まるため、ノードやサービスを変更したら再確認してください。

02

リモートユーザー名を確認

ユーザー名は接続情報と一字一句同じである必要があります。ローカルPCのユーザー名、リポジトリアカウント、チームメンバー名をSSHコマンドに入力しないでください。

03

鍵の権限を制限

秘密鍵ファイルは現在のローカルユーザーだけが読み取れるようにします。macOSまたはLinuxでは chmod 600 ~/.ssh/lemonvm_keyを実行し、 -i でファイルを指定します。

04

初回フィンガープリントを確認

初回接続でホストフィンガープリントが表示されたら、まずコンソールの情報と照合します。内容が一致した場合のみ known_hostsに保存し、確認をそのままスキップしないでください。

05

再利用できる設定を保存

Host、HostName、User、Port、IdentityFileをローカルのSSH設定に記述すると手入力のミスを減らせます。ただし、秘密鍵の内容を設定ファイルに書き込まないでください。

コマンド形式
ssh -i ~/.ssh/lemonvm_key -p ポート ユーザー名@ホストアドレス
VNC設定

利用可能なセッションを作り、画質を段階的に上げる

初回接続は中程度の画質と低めの解像度から始めます。入力、クリップボード、ウィンドウ切り替えが正常だと確認してから、回線の余裕に合わせて表示設定を調整してください。

01

アドレスを入力

コンソールに表示されたVNCのホストとポートを使用し、SSHのポートを流用しないでください。クライアントが一体型アドレスを求める場合は、その形式でホストとポートを入力します。

02

中程度の画質から開始

まずマウス、キーボード、ウィンドウの応答性を優先します。文字が十分に見えることを確認してから色や画質を上げ、初回接続で帯域を使い切らないようにしてください。

03

解像度を調整

高解像度ではフレームごとの転送量が増えます。低速なネットワークでは単一ディスプレイと低解像度から始め、安定してからリモートデスクトップのサイズを調整してください。

04

クリップボードを確認

接続後、機密情報を含まないテキストで双方向コピーをテストします。共有クリップボードで秘密鍵、完全なアクセストークン、長期認証情報を送らないでください。

05

フルスクリーンのショートカットを確認

クライアントでフルスクリーンを終了し、キーボードキャプチャを解除するショートカットを記録します。リモートのキー操作がローカルシステムに奪われ、セッション異常と誤認するのを防げます。

06

SSHの診断経路を残す

VNC画面が停止したら、まずSSHで負荷とネットワークを確認します。SSHに接続できるなら、通常は物理ノードが稼働中で、問題はGUIセッションまたは経路にある可能性が高いです。

接続診断

ハンドシェイク、回線、リモートビルドを順に確認

診断では一度に1つの変数だけを変更します。まずSSHのハンドシェイク、次にネットワーク探査、最後に検証可能なリモートコマンドを確認します。これにより認証情報、ポート、経路、タスク環境の問題を切り分けられます。

「 Connecting to 」の後に応答がない:アドレス、ポート、ローカルの出口制限を確認します。
鍵交換まで進むが認証に失敗:ユーザー名、秘密鍵のパス、ファイル権限を確認します。
SSHは正常だがVNCが遅い:画質と解像度を下げ、バックグラウンド転送を一時停止します。
接続は正常だがビルドに失敗:完全なビルドログを読み、タスクエラーをネットワークのせいにしないでください。
remote-diagnostic.log
$ ssh -v -p ポート ユーザー名@ホストアドレス
debug1: Connecting to host [アドレス] port [ポート]
debug1: Server host key: SHA256:[フィンガープリント]
debug1: Authentication succeeded (publickey)

$ ping -c 5 ホストアドレス
5 packets transmitted, 5 packets received
round-trip min/avg/max = 41.2/44.8/49.1 ms

$ ssh lemon-node "xcodebuild -version"
Xcode [現在のバージョン]
Build version [現在のビルド番号]

$ ssh lemon-node "cd ~/project && xcodebuild build"
** BUILD SUCCEEDED **
ノード遅延の実測値

5つのノードを同じ条件で比較

次の表は、各接続地点からシンガポール、東京、ソウル、香港、米国西部への相対的な差を確認するものです。インタラクティブなVNCでは遅延と揺らぎ、バックグラウンドビルドでは接続の安定性と持続スループットを重視します。

測定時間帯平日20:00–22:00(現地時間)
サンプル数各グループ30回のICMP
集計方法最初のパケットを除いた中央値
接続回線現地の固定回線または法人向け光回線
主な接続都市からLemonVMの販売中5ノードへのping中央値(単位:ms)
接続地・通信事業者 シンガポール 東京 ソウル 香港 米国西部
上海 · 中国電信 68 ms 42 ms 51 ms 35 ms 146 ms
北京 · 中国聯通 91 ms 54 ms 46 ms 58 ms 139 ms
深圳 · 中国移動 53 ms 67 ms 76 ms 24 ms 168 ms
台北 · 固定回線 62 ms 39 ms 48 ms 31 ms 126 ms
ロサンゼルス · 法人向け光回線 171 ms 112 ms 124 ms 143 ms 27 ms

読み方:同じ接続地では横方向の数値を比較します。VNCでは揺らぎとパケットロスも継続的に確認してください。実際の接続品質は、ローカルWi-Fi、通信事業者の出口、国際経路、バックグラウンド転送に左右されます。

高遅延の対処

ローカルからリモートの順に範囲を絞る

ノード変更、画質変更、クライアント再起動を同時に行わないでください。次の6手順を順番に確認し、各手順の前後で遅延、パケットロス、操作応答を記録します。

01

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

有線または安定した5GHz Wi-Fiに切り替え、ローカルのダウンロードとクラウド同期を一時停止します。同じLANの他の端末も不安定なら、まずローカル回線を確認してください。

02

国際回線を観察

少なくとも数分間連続して探査し、安定した高遅延と断続的なパケットロスを区別します。短いスパイクはVNCのマウス操作や画面停止を引き起こしやすくなります。

03

選択したノードを比較

シンガポール、東京、ソウル、香港、米国西部から、主なアクセス方向に近いノードを選びます。チームでは主な操作者またはビルド依存先の方向を基準にしてください。

04

VNCの画質を下げる

まず色品質、圧縮レベル、フレームレートを下げ、入力応答が改善するか確認します。画面は鮮明でも操作遅延が大きい場合、帯域設定だけを上げないでください。

05

解像度を下げる

一時的に単一画面と低解像度へ切り替えます。応答が大きく改善するなら、1フレームのデータ量が現在の回線に適した範囲を超えています。

06

バックグラウンド転送を停止

リポジトリ取得、依存関係のダウンロード、素材のアップロード、成果物の転送、リモート同期を確認します。大容量ファイルの転送は、リアルタイムのVNC操作と時間を分けて実行してください。

セッションの安全性

接続情報は必要な人だけに共有

リモート接続の安全境界は、ローカル鍵、初期認証情報、セッションロック、チーム内の引き継ぎで構成されます。長期アクセス情報を公開チャットやリポジトリに貼り付けないでください。

鍵を優先使用

デバイスごとに別の鍵を使い、秘密鍵は管理下の端末だけに保存します。端末をチームから外したり紛失したりしたら、対応する公開鍵を速やかに削除してください。

初期認証情報を更新

初回ログインと環境確認が終わったら、一時的な認証情報を更新します。スクリプト、ビルドログ、リポジトリ設定にそのまま使えるアクセス情報を残さないでください。

離席前にセッションをロック

一時的に離れるときはリモートデスクトップをロックし、実行中のバックグラウンドタスクは終了しないでください。共有ワークスペースではローカルPCも同時にロックします。

メンバー別にアクセスを割り当て

複数人で作業する場合は、誰がいつタスクを実行したかを記録し、長期鍵を共有しないでください。引き継ぎ時にはタスクの状態、ログの場所、残りの手順を伝えます。

切断からの復旧

タスクが実行中か確認してから再接続する

VNC画面が消えても物理ノードが停止したとは限りません。別の接続経路で状態を確認し、ビルドの重複起動、出力の上書き、実行中タスクの中断を避けてください。

ネットワーク切断

SSHとVNCが同時に切断

まずローカルネットワークを確認し、次に対象ホストとポートをテストします。ネットワーク復旧後に再接続し、タスクログとプロセス状態を確認してから、元のコマンドをそのまま再実行しないでください。

確認項目:ローカル出口、対象ポート、最新ログの時刻
システムスリープ

接続は確立するがリモートが応答しない

コンソールで現在のサービス状態を確認し、SSHでシステムの応答を検証します。復旧後は電源とセッション設定を確認し、長時間タスク中に不適切なスリープへ移行しないようにします。

確認項目:SSH応答、システム時刻、実行中プロセス
GUIセッション

SSHは正常だがVNC画面に異常

表示設定を下げてGUIセッションを再確立します。タスクの状態を確認する前にノード全体を再起動しないでください。バックグラウンドビルドが正常に続いている可能性があります。

確認項目:リモート負荷、GUIセッション、クライアント設定
バックグラウンドタスク

切断後もビルドが継続

再接続後にログ、終了コード、成果物ディレクトリを確認します。元のタスクが終了または失敗したことを確認してから次のビルドを開始し、同じ出力先への同時書き込みを避けてください。

確認項目:プロセスID、終了コード、成果物の更新時刻