リモートセッションの流れ

認証情報の準備からクラウドMacへの安定接続まで

まずコンソールでノードと接続元を確認し、ユーザー名と鍵を準備します。最後に用途に応じてSSH、リモートデスクトップ、または自動化セッションを選択します。NowMiniの各注文にはM4物理マシン1台が割り当てられ、仮想マシンではありません。

接続ステップ
3ステップ初回セッションを完了
ノード数
4拠点アジアのノードから選択
稼働実績
365日通常稼働
接続前のチェック

環境差分を切り分けてからクライアントを起動

6項目すべてが同じ注文・同じノードの情報であることを確認します。古いノードアドレス、他メンバーのユーザー名、過去の鍵を今回の接続に混在させないでください。

A1

注文とノードの状態

コンソールで注文が利用可能な状態になっていることを確認し、現在のノードIDを照合します。利用可能かどうかはコンソールのリアルタイム表示を基準にしてください。

確認:注文IDとノードIDが一致
A2

ノードのリージョン

一覧にはシンガポール、日本(東京)、韓国(ソウル)、香港が含まれます。接続情報が選択したリージョンのものか確認し、別ノードのアドレスを使わないでください。

確認:リージョンと注文記録が一致
A3

ユーザー名と認証情報

ユーザー名、鍵ファイル、認証情報の有効範囲を1文字ずつ確認します。秘密鍵は管理対象の端末にのみ保存し、チャットやコードリポジトリで共有しないでください。

確認:認証情報が現在の利用者に属している
A4

接続元

現在のパブリック出口またはチームゲートウェイが、ノードの接続元制限を満たしているか確認します。ネットワークを変更した場合は、出口アドレスが変わっていないか再確認してください。

確認:現在の接続元が許可されている
A5

ローカルネットワーク

プロキシ、企業ファイアウォール、公衆Wi-Fi、不安定な経路の影響を切り分けます。必要に応じて別の信頼できるネットワークでも検証してください。

確認:対象ポートへの接続を確立できる
A6

クライアントのバージョン

SSHまたはグラフィッククライアントの名称・バージョンと、ローカルOSのバージョンを記録します。チームでは同じ接続パラメータを使い、クライアント差を減らしてください。

確認:バージョンとパラメータを記録済み
コマンドラインセッション

SSHで最初の検証可能な接続を確立

コマンド内のホストアドレス、ユーザー名、鍵ファイルにはプレースホルダーを使用しています。実行前にコンソールから現在のノード情報をコピーし、例の文字列をそのまま使わないでください。

STEP 01

ローカル鍵の権限を制限

まずファイルの所有者が現在のローカルユーザーであることを確認し、他のアカウントから読み取れないようにします。鍵ファイル名で環境を区別しつつ、実際のパスワードやトークンは含めないでください。

STEP 02

SSHセッションを開始

鍵、ユーザー名、ホストアドレスを明示的に指定します。初回の切り分けではクライアント出力を残し、多数の非表示パラメータでエラー原因を隠さないでください。

STEP 03

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

初回接続時に表示されるフィンガープリントを、コンソールの情報と照合します。同じ名前のアドレスに接続したことがあってフィンガープリントが変わっている場合は、接続を停止してノード記録を確認してください。

STEP 04

セッションを確認

ログイン後、ホスト名、現在のユーザー、作業ディレクトリ、利用可能なディスクを確認します。本人確認が済んでいないセッションにコード、証明書、モデルファイルを取り込まないでください。

SSH接続記録 PLACEHOLDER VALUES
鍵の権限を制限
chmod 600 ~/.ssh/<KEY_FILE>
接続を確立
ssh -i ~/.ssh/<KEY_FILE> <USERNAME>@<HOST_ADDRESS>
詳細な診断を出力
ssh -vv -i ~/.ssh/<KEY_FILE> <USERNAME>@<HOST_ADDRESS>
セッション内で本人確認
hostname
whoami
pwd
df -h
初回接続の原則 フィンガープリントを確認してから記録を受け入れる
リモートデスクトップ

画面・入力・再接続を分けて確認

グラフィックセッションはXcode、Logic Pro、ウィンドウ操作が必要な作業に適しています。接続できても操作感が安定しているとは限りません。解像度、キーボード、クリップボードを個別に確認してください。

  1. 01

    セッションを確立

    コンソールから現在のノードのグラフィック接続情報を取得し、ホストアドレス、ユーザー名、接続元を確認します。初回セッションは標準画質のままにして、macOSのグラフィック画面に安定して入れることを確認してください。

    結果:デスクトップが表示され、入力できる
  2. 02

    解像度を調整

    ローカル画面と回線品質に応じて段階的に調整します。高解像度では帯域幅とエンコード負荷が増えるため、継続的に途切れる場合はまず画面サイズを下げ、ノードの問題か判断します。

    結果:文字が鮮明で操作が途切れない
  3. 03

    キーボードレイアウトを調整

    日本語・英語の切り替え、Command、Option、Control、ファンクションキー、よく使うショートカットを確認します。ローカルOSによってマッピングが異なる場合があるため、チームで統一したキー配置を記録してください。

    結果:ショートカットが意図どおり動作
  4. 04

    クリップボードを検証

    まず機密情報を含まない短いテキストで、片方向・双方向のコピーをテストします。秘密鍵、完全なトークン、マスキング前の本番データをクリップボードで渡さないでください。

    結果:許可されたテキストを管理して転送できる
  5. 05

    切断後に再接続

    まずローカルネットワークが切り替わっていないか確認し、次に接続元、クライアントログ、ノードの状態を確認します。再接続前に同じセッションを何度も作成しないでください。デスクトップの応答を誤って判断する原因になります。

    結果:元の作業コンテキストに戻れる
ファイルとコードの同期

内容に応じて転送経路を選択

ソースコード、一時ファイル、ビルド成果物に同じ同期方法を使わないでください。データの出所、宛先、保持期間を定めてから、Git、安全なファイル転送、成果物の回収を選択します。

3つの同期経路:用途・操作範囲・確認方法
経路 適した内容 実行方法 セキュリティ上の境界 確認結果
Gitで取得 バージョン管理されたソースコード、スクリプト、設定テンプレート 独立した作業ディレクトリでクローンまたは取得し、ブランチとコミットを固定して依存関係ロックファイルを記録 リポジトリに秘密鍵、トークン、署名素材、ローカル認証情報ファイルを書き込まない コミットハッシュがパイプラインの想定と一致
安全なファイル転送 モデルファイル、素材、一時データ、リポジトリに入れない入力ファイル 管理されたアカウントと明確な宛先ディレクトリを使って転送し、完了後にファイル数、サイズ、チェックサムを確認 必要なディレクトリだけを開き、一時ファイルの削除担当者と期限を設定 ファイルが完全で用途に合った権限になっている
ビルド成果物を回収 アーカイブ、ログ、テストレポート、シンボルファイル、納品パッケージ 作業終了後に出力ディレクトリから回収し、タスクID、コミットハッシュ、ビルド番号で命名 回収前に環境変数、認証情報の一部、マスキング前のログが含まれていないか確認 成果物を一意のタスクまで追跡できる

安全なコピーコマンドの構成

単一ファイルまたは小規模なディレクトリに適しています。以下のホスト、ユーザー、鍵、パスはすべてプレースホルダーです。

scp -i ~/.ssh/<KEY_FILE> <LOCAL_FILE> <USERNAME>@<HOST_ADDRESS>:<REMOTE_PATH>

差分同期コマンドの構成

繰り返し転送するディレクトリに適しています。削除系のオプションを本番実行する前に、プレビューモードで変更範囲を確認してください。

rsync -av --dry-run -e "ssh -i ~/.ssh/<KEY_FILE>" <LOCAL_PATH> <USERNAME>@<HOST_ADDRESS>:<REMOTE_PATH>
自動化接続

CI runnerを実行可能にし、監査も可能にする

自動化アカウントを日常の対話用アカウントと共用しないでください。ID、鍵、作業ディレクトリ、キャッシュ、ログを分けて管理すると、障害発生時に対象タスク、権限、入力を特定できます。

RUNNER-01

専用アカウントを使用

runner用の専用システムアカウントを作成し、自動化タスクだけを担当させます。対話型開発、グラフィックセッション、パイプライン実行は別のID境界で管理してください。

  • アカウント名から用途を一意のパイプラインに対応付けられる
  • 個人メンバーと認証情報を共有しない
  • runnerを停止するときはアカウント権限も同時に取り消す
KEY-02

最小権限の鍵を設定

鍵にはタスクに必要なログイン権限とディレクトリ権限だけを付与します。リポジトリ、チーム、環境ごとに別の鍵を使い、漏えい時の影響範囲を抑えてください。

  • 鍵の用途と担当者を追跡できる
  • 秘密鍵をリポジトリやビルドログに書き込まない
  • 未使用の鍵を定期的に確認して取り消す
PATH-03

作業ディレクトリを固定

ソースコード、キャッシュ、一時ファイル、成果物をそれぞれ固定ディレクトリに配置します。タスク開始前に変動する状態を整理し、終了後は必要な記録を残してください。

  • 各パイプラインで明確なルートディレクトリを使う
  • キャッシュは再利用できるが権限境界を越えない
  • 成果物ディレクトリとソースディレクトリを分離
LOG-04

監査可能なログを保持

タスクID、コミットハッシュ、開始・終了時刻、終了コード、成果物の場所を記録します。認証情報に関わるログ項目は必ずマスキングしてください。

  • 失敗したタスクでも各ステージの境界を完全に残す
  • クライアントとrunnerのバージョンを記録する
  • ログを一意の注文とノードに関連付けられる
接続トラブルの切り分け

ローカルからノードまで、層ごとに失敗箇所を特定

ネットワーク、アドレス、鍵、クライアントパラメータを同時に変更しないでください。毎回1つの層だけを検証して結果を記録すると、ローカルの問題、接続制限、認証エラー、サービス状態を区別できます。

  1. 1

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

    端末が正常にネットワークへ接続できることを確認し、経路を書き換える可能性のある一時プロキシを無効にして再試行します。別の信頼できるネットワークでも検証し、現在の出口に問題が付随するか判断します。

    証拠:ネットワークと出口アドレス
  2. 2

    接続元を確認

    コンソールで許可された接続元と現在のパブリック出口を照合します。企業ネットワーク、モバイルホットスポット、家庭のネットワークを切り替えると出口アドレスが変わる場合があります。

    証拠:接続元制限の記録
  3. 3

    認証情報の権限を確認

    ユーザー名が現在のノードに属し、秘密鍵のパスが正しく、ローカルファイル権限が十分に制限されていることを確認します。認証に失敗しても無関係な鍵を連続して試さないでください。

    証拠:認証段階の出力
  4. 4

    ホストアドレスを確認

    コンソールからアドレスを再コピーし、古い記録、空白、文字の欠落、ノードの取り違えを排除します。設定エイリアスを使う場合は、展開後の実際の値も確認してください。

    証拠:今回の対象アドレス
  5. 5

    サービス状態を確認

    コンソールに戻り、注文、ノード、接続サービスのリアルタイム応答を確認します。ローカルクライアントの一般的なエラーだけでノードの状態を判断しないでください。

    証拠:コンソールのリアルタイム結果
  6. 6

    クライアントログを読む

    失敗がアドレス解析、ネットワーク接続の確立、プロトコルネゴシエーション、本人確認、セッション開始のどの段階で起きたか記録します。サポート依頼前に認証情報と機密パスを削除してください。

    証拠:マスキング済みクライアントログ

それでも接続できない場合

コンソールからチケットを送信し、注文ID、ノードのリージョン、発生時刻、再現手順、クライアントのバージョン、マスキング済みログを添付します。未注文の場合は、問い合わせページで目的のワークフローと希望リージョンをお知らせください。

セッション終了時のセキュリティ

作業終了時にアクセス権と一時データを回収

ウィンドウを閉じるだけではセッション終了の一部にすぎません。一時的な認証情報、キャッシュ、転送ファイル、チームメンバーの権限をすべて明確に処理してください。

リモートセッションを終了

実行中のコマンドとグラフィックアプリを正常に終了してから、SSHまたはグラフィックセッションを閉じます。作業ディレクトリや出力ファイルを占有する対話型プロセスが残っていないことを確認してください。

完了の目安:セッションが明確に終了

一時的な認証情報を取り消す

今回のタスクのためだけに作成した一時鍵、トークン、アカウント権限を削除します。取り消し後に検証を行い、古い認証情報でノードにアクセスできないことを確認してください。

完了の目安:一時アクセスが無効

キャッシュファイルを整理

再利用可能なビルドキャッシュ、タスクの一時ファイル、機密入力を区別します。用途と保持期間が定義された内容だけを残し、それ以外はタスクリストに沿って削除してください。

完了の目安:ディレクトリと保持ルールが一致

メンバー変更に対応

チームメンバーがプロジェクトを離れる、または役割が変わった場合は、アクセス鍵をローテーションし、旧アカウントの権限を削除します。runner、スクリプト、ローカル設定が古い認証情報を参照していないかも確認してください。

完了の目安:メンバーと権限を再対応付け
終了時の記録

結果を残し、秘密は残さない

タスクID、コミットハッシュ、成果物の場所、終了コード、担当者、終了時刻は記録できます。パスワード、秘密鍵、完全なトークン、機密業務データを確認記録に書き込まないでください。

ノード情報を準備して接続を開始

まずコンソールで注文、リージョン、ホストアドレス、認証情報を確認します。新しいノードが必要ならNowMini M4を注文できます:M4、16GB RAM、256GB SSD、専有物理マシン、仮想マシンではありません。