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 が接続を許可します。

次のステップ