SSH 接続について


Compute Engine は鍵ベースの SSH 認証を使用して、すべての Linux 仮想マシン(VM)インスタンスへの接続を確立します。必要に応じて、Windows VM で SSH を有効にできます。デフォルトでは、Linux VM のローカル ユーザーのパスワードは構成されていません。

VM に接続するには、いくつかの構成を実行する必要があります。Google Cloud コンソールまたは Google Cloud CLI を使用して VM に接続する場合、Compute Engine はこれらの構成をユーザーに代わって実行します。Compute Engine は、接続に使用するツール、およびメタデータまたは OS Login のどちらを介して VM へのアクセスを管理するかによって、異なる構成を実行します。OS Login は Linux VM でのみ使用できます。

メタデータ マネージド SSH 接続

デフォルトでは、Compute Engine はカスタム プロジェクトおよび / またはインスタンス メタデータを使用して SSH 認証鍵を構成し、SSH アクセスを管理します。すべての Windows VM はメタデータを使用して SSH 認証鍵を管理しますが、Linux VM ではメタデータ鍵または OS Login を使用できます。OS Login を使用する場合、メタデータ SSH 認証鍵は無効になります。

VM に接続するために Google Cloud コンソール、gcloud CLI、またはサードパーティ製ツールを使用する場合、Compute Engine が SSH 接続を許可する前に、各タブをクリックして Compute Engine が実行する構成の詳細を確認します。Google Cloud コンソールまたは gcloud CLI を使用せずに VM に接続する場合は、一部の構成を自分自身で行う必要があります。

コンソール

  1. Google Cloud コンソールの SSH ボタンを使用して VM に接続します。
  2. Compute Engine は、ユーザー名を設定し、次の構成でエフェメラル SSH 認証鍵ペアを作成します。
    • ユーザー名は、Google アカウントのユーザー名として設定されます。たとえば、Google アカウントに関連付けられているメールアドレスが cloudysanfrancisco@gmail.com の場合、ユーザー名は cloudysanfrancisco です。
    • 公開 SSH 認証鍵と秘密 SSH 認証鍵は、ブラウザ セッションに保存されます。
    • SSH 認証鍵の有効期限は 5 分です。Compute Engine が鍵を作成して 5 分後に、SSH 認証鍵では VM に接続できなくなります。
  3. Compute Engine が公開 SSH 認証鍵とユーザー名をメタデータにアップロードします。
  4. Compute Engine は、SSH 認証鍵とユーザー名をメタデータから取得してユーザー名でユーザー アカウントを作成し、Linux VM では、その公開鍵を VM 上にあるユーザーの ~/.ssh/authorized_keys ファイルに格納します。Windows VM では、Compute Engine は VM に公開鍵を保存しません。
  5. Compute Engine が接続を許可します。

gcloud

  1. gcloud compute ssh コマンドを使用して VM に接続します。
  2. Compute Engine は、ユーザー名を設定し、次の構成で永続的な SSH 認証鍵ペアを作成します。
    • ユーザー名は、ローカルマシンのユーザー名として設定されます。
    • 公開 SSH 認証鍵がプロジェクトのメタデータに保存されます。Compute Engine が SSH キーをプロジェクト メタデータに保存できない場合(例: block-project-ssh-keysTRUE に設定されている)、Compute Engine は SSH 認証鍵をインスタンス メタデータに保存します。
    • 秘密 SSH 認証鍵はローカルマシンに保存されます。
    • SSH 認証鍵に有効期限はありません。新しい鍵を構成しない限り、作成する今後のすべての SSH 接続にこの鍵が使用されます。
  3. Compute Engine が公開 SSH 認証鍵とユーザー名をメタデータにアップロードします。
  4. Compute Engine は、SSH 認証鍵とユーザー名をメタデータから取得してユーザー名でユーザー アカウントを作成し、Linux VM では、その公開鍵を VM 上にあるユーザーの ~/.ssh/authorized_keys ファイルに格納します。Windows VM では、Compute Engine は VM に公開鍵を保存しません。
  5. Compute Engine が接続を許可します。

サードパーティ製ツール

  1. SSH 認証鍵ペアとユーザー名を作成します。詳しくは、SSH 認証鍵を作成するをご覧ください。
  2. 公開鍵とユーザー名をメタデータにアップロードします。詳しくは、 メタデータ ベースの SSH 認証鍵を使用する VM に SSH 認証鍵を追加するをご覧ください。
  3. VM に接続します。
  4. Compute Engine は、SSH 認証鍵とユーザー名をメタデータから取得してユーザー名でユーザー アカウントを作成し、Linux VM では、その公開鍵を VM 上にあるユーザーの ~/.ssh/authorized_keys ファイルに格納します。Windows VM では、Compute Engine は VM に公開鍵を保存しません。
  5. Compute Engine が接続を許可します。

OS Login マネージド SSH 接続

OS Login メタデータを設定すると、Compute Engine では VM の authorized_keys ファイルが削除され、プロジェクトまたはインスタンスのメタデータに保存されている SSH 認証鍵からの接続を受け入れなくなります。

VM に接続するために Google Cloud コンソール、gcloud CLI、またはサードパーティ製ツールを使用する場合、Compute Engine が SSH 接続を許可する前に、各タブをクリックして Compute Engine が実行する構成の詳細を確認します。Google Cloud コンソールまたは gcloud CLI を使用せずに VM に接続する場合は、一部の構成を自分自身で行う必要があります。

コンソール

  1. Google Cloud コンソールの SSH ボタンを使用して VM に接続します。
  2. Compute Engine は、ユーザー名を設定し、次の構成でエフェメラル SSH 認証鍵ペアを作成します。
    • ユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合や、プロジェクトが組織に属していない場合、Compute Engine は次の形式で Google アカウントのメールアドレスを使用します。

      USERNAME_DOMAIN_SUFFIX
      たとえば、Google アカウントに関連付けられているメールアドレスが cloudysanfrancisco@gmail.com の場合、生成されるユーザー名は cloudysanfrancisco_gmail_com です。

    • 公開 SSH 認証鍵は、ブラウザ セッションと Google アカウントに保存されます。
    • 秘密 SSH 認証鍵はブラウザ セッションに保存されます。
    • SSH 認証鍵の有効期限は 3 分です。Compute Engine が鍵を作成して 3 分後に、SSH 認証鍵では VM に接続できなくなります。
  3. Compute Engine は、NSS サービス モジュールを使用して、指定されたユーザー名を VM 内の OS Login アカウントに解決します。
  4. Compute Engine は PAM 構成を使用して IAM 承認を行い、接続に必要な権限を持っていることを確認します。
  5. Compute Engine がユーザー アカウントから SSH 認証鍵を取得し、SSH 認証済みキーコマンドを使用して VM の OpenSSH に提供します。
  6. Compute Engine が接続を許可します。

gcloud

  1. gcloud compute ssh コマンドを使用して VM に接続します。
  2. Compute Engine は、ユーザー名を設定し、次の構成で永続的な SSH 認証鍵ペアを作成します。
    • ユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合、Compute Engine は次の形式で Google アカウントのメールアドレスを使用します。

      USERNAME_DOMAIN_SUFFIX
      たとえば、Google アカウントに関連付けられているメールアドレスが cloudysanfrancisco@gmail.com の場合、生成されるユーザー名は cloudysanfrancisco_gmail_com です。

    • 公開 SSH 認証鍵は Google アカウントに保存されます。
    • 秘密 SSH 認証鍵は、ローカルマシンの google_compute_engine ファイルに保存されます。
    • SSH 認証鍵に有効期限はありません。新しい鍵を構成しない限り、作成する今後のすべての SSH 接続にこの鍵が使用されます。
  3. Compute Engine は、NSS サービス モジュールを使用して、指定されたユーザー名を VM 内の OS Login アカウントに解決します。
  4. Compute Engine は PAM 構成を使用して IAM 承認を行い、接続に必要な権限を持っていることを確認します。
  5. Compute Engine がユーザー アカウントから SSH 認証鍵を取得し、SSH 認証済みキーコマンドを使用して VM の OpenSSH に提供します。
  6. Compute Engine が接続を許可します。

サードパーティ製ツール

  1. SSH 認証鍵ペアを作成します。詳しくは、SSH 認証鍵を作成するをご覧ください。
  2. 公開 SSH 認証鍵を OS Login プロファイルにアップロードします。詳しくは、OS Login を使用する VM に鍵を追加するをご覧ください。
    • Compute Engine により、鍵は Google アカウントに保存されます。
    • Compute Engine は、次のデフォルトの形式でユーザー名を構成します。
          USERNAME_DOMAIN_SUFFIX
      たとえば、Google アカウントに関連付けられているメールアドレスが cloudysanfrancisco@gmail.com の場合、生成されるユーザー名は cloudysanfrancisco_gmail_com です。
  3. 必要に応じて、Google Workspace Admin SDK Directory API でユーザー名を設定します。
  4. VM に接続します。
  5. Compute Engine は、NSS サービス モジュールを使用して、指定されたユーザー名を VM 内の OS Login アカウントに解決します。
  6. Compute Engine は PAM 構成を使用して IAM 承認を行い、接続に必要な権限を持っていることを確認します。
  7. Compute Engine がユーザー アカウントから SSH 認証鍵を取得し、SSH 認証済みキーコマンドを使用して VM の OpenSSH に提供します。
  8. Compute Engine が接続を許可します。

次のステップ