Compute Engine は、鍵ベースの SSH 認証を使用して Linux 仮想マシン(VM)インスタンスへの接続を確立します。また、OS Login VM の証明書ベースの認証もサポートしています。必要に応じて、Windows VM で SSH を有効にできます。デフォルトでは、Linux VM 上のローカル ユーザーにはパスワードは構成されていません。
VM に接続するには、いくつかの構成を行う必要があります。 Google Cloud コンソールまたは Google Cloud CLI を使用して VM に接続する場合、これらの構成は Compute Engine がユーザーの代わりに行います。Compute Engine によって行われる構成は、接続に使用するツールと、VM へのアクセスをメタデータと OS Login のどちらを通じて管理するかによって異なります。OS Login は Linux VM でのみ使用できます。
メタデータ マネージド SSH 接続
デフォルトでは、Compute Engine はカスタム プロジェクトとインスタンス メタデータの両方またはどちらか一方を使用して SSH 認証鍵を構成し、SSH アクセスを管理します。すべての Windows VM はメタデータを使用して SSH 認証鍵を管理しますが、Linux VM ではメタデータ鍵または OS Login を使用できます。OS Login を使用する場合、メタデータ SSH 認証鍵は無効になります。各タブをクリックして、 Google Cloud コンソール、gcloud CLI、またはサードパーティ製ツールを使用して VM に接続する場合に Compute Engine が SSH 接続を許可するために行う構成の詳細を確認してください。 Google Cloud コンソールまたは gcloud CLI を使用せずに VM に接続する場合は、一部の構成を手動で行う必要があります。
コンソール
- Google Cloud コンソールの [SSH] ボタンを使用して VM に接続します。
- Compute Engine がユーザー名を設定し、次の構成で一時的な SSH 認証鍵ペアを作成します。
- ユーザー名は、Google アカウントのユーザー名として設定されます。たとえば、Google アカウントに関連付けられているメールアドレスが
cloudysanfrancisco@gmail.com
の場合、ユーザー名はcloudysanfrancisco
です。 - 公開 SSH 認証鍵と秘密 SSH 認証鍵は、ブラウザ セッションに保存されます。
- SSH 認証鍵の有効期限は 3 分です。Compute Engine が鍵を作成してから 3 分後に、その SSH 認証鍵では VM に接続できなくなります。
- ユーザー名は、Google アカウントのユーザー名として設定されます。たとえば、Google アカウントに関連付けられているメールアドレスが
- Compute Engine が SSH 認証鍵を認証し、接続を許可します。
- Compute Engine が公開 SSH 認証鍵とユーザー名をメタデータにアップロードします。
- Compute Engine は、SSH 認証鍵とユーザー名をメタデータから取得してユーザー名でユーザー アカウントを作成し、Linux VM では、その公開鍵を VM 上にあるユーザーの
~/.ssh/authorized_keys
ファイルに格納します。Windows VM では、Compute Engine は VM に公開鍵を保存しません。 - Compute Engine が接続を許可します。
gcloud
gcloud compute ssh
コマンドを使用して VM に接続します。- Compute Engine は、ユーザー名を設定し、次の構成で永続的な SSH 認証鍵ペアを作成します。
- ユーザー名は、ローカルマシンのユーザー名として設定されます。
- 公開 SSH 認証鍵がプロジェクトのメタデータに保存されます。Compute Engine が SSH キーをプロジェクト メタデータに保存できない場合(例:
block-project-ssh-keys
がTRUE
に設定されている)、Compute Engine は SSH 認証鍵をインスタンス メタデータに保存します。 - 秘密 SSH 認証鍵はローカルマシンに保存されます。
- SSH 認証鍵に有効期限はありません。新しい鍵を構成しない限り、作成する今後のすべての SSH 接続にこの鍵が使用されます。
- ユーザー名は、ローカルマシンのユーザー名として設定されます。
- Compute Engine が SSH 認証鍵を認証し、接続を許可します。
- Compute Engine が公開 SSH 認証鍵とユーザー名をメタデータにアップロードします。
- Compute Engine は、SSH 認証鍵とユーザー名をメタデータから取得してユーザー名でユーザー アカウントを作成し、Linux VM では、その公開鍵を VM 上にあるユーザーの
~/.ssh/authorized_keys
ファイルに格納します。Windows VM では、Compute Engine は VM に公開鍵を保存しません。 - Compute Engine が接続を許可します。
サードパーティ製ツール
- SSH 認証鍵ペアとユーザー名を作成します。詳しくは、SSH 認証鍵を作成するをご覧ください。
- 公開鍵とユーザー名をメタデータにアップロードします。詳しくは、 メタデータ ベースの SSH 認証鍵を使用する VM に SSH 認証鍵を追加するをご覧ください。
- VM に接続します。
- Compute Engine は、SSH 認証鍵とユーザー名をメタデータから取得してユーザー名でユーザー アカウントを作成し、Linux VM では、その公開鍵を VM 上にあるユーザーの
~/.ssh/authorized_keys
ファイルに格納します。Windows VM では、Compute Engine は VM に公開鍵を保存しません。 - Compute Engine が接続を許可します。
OS Login マネージド SSH 接続
OS Login メタデータを設定すると、VM の authorized_keys
ファイルが削除され、プロジェクトまたはインスタンスのメタデータに保存されている SSH 認証鍵からの接続が受け入れられなくなります。OS Login は、ユーザーの Google アカウントに関連付けられた SSH 認証鍵からの接続と、OS Login 認証局によって署名された SSH 証明書をサポートしています。必要に応じて、OS Login で SSH 証明書を必須にするで説明されているように、OS Login において SSH 証明書を使用した接続のみを許可するように設定できます。
SSH 認証鍵での接続
各タブをクリックして、SSH 認証鍵を使用して VM に接続する場合に Compute Engine が SSH 接続を許可するために行う構成の詳細を確認してください。Compute Engine によって行われる構成は、VM への接続に Google Cloud コンソール、gcloud CLI、サードパーティ製ツールのいずれを使用するかによって異なります。サードパーティ製ツールを使用して接続する場合は、一部の構成を手動で行う必要があります。
コンソール
- Google Cloud コンソールの [SSH] ボタンを使用して VM に接続します。
- Compute Engine がユーザー名を設定し、次の構成で一時的な SSH 認証鍵ペアを作成します。
- ユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合や、プロジェクトが組織に属していない場合、Compute Engine は次の形式で Google アカウントのメールアドレスを使用します。
たとえば、Google アカウントに関連付けられているメールアドレスがUSERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com
の場合、生成されるユーザー名はcloudysanfrancisco_gmail_com
です。 - 公開 SSH 認証鍵は、ブラウザ セッションと Google アカウントに保存されます。
- 秘密 SSH 認証鍵はブラウザ セッションに保存されます。
- SSH 認証鍵の有効期限は 3 分です。Compute Engine が鍵を作成してから 3 分後に、その SSH 認証鍵では VM に接続できなくなります。
- ユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合や、プロジェクトが組織に属していない場合、Compute Engine は次の形式で Google アカウントのメールアドレスを使用します。
- Compute Engine が SSH 認証鍵を認証し、接続を許可します。
gcloud
gcloud compute ssh
コマンドを使用して VM に接続します。- Compute Engine は、ユーザー名を設定し、次の構成で永続的な SSH 認証鍵ペアを作成します。
- ユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合、Compute Engine は次の形式で Google アカウントのメールアドレスを使用します。
たとえば、Google アカウントに関連付けられているメールアドレスがUSERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com
の場合、生成されるユーザー名はcloudysanfrancisco_gmail_com
です。 - 公開 SSH 認証鍵は Google アカウントに保存されます。
- 秘密 SSH 認証鍵は、ローカルマシンの
google_compute_engine
ファイルに保存されます。 - SSH 認証鍵に有効期限はありません。新しい鍵を構成しない限り、作成する今後のすべての SSH 接続にこの鍵が使用されます。
- ユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合、Compute Engine は次の形式で Google アカウントのメールアドレスを使用します。
- Compute Engine が SSH 認証鍵を認証し、接続を許可します。
サードパーティ製ツール
- SSH 認証鍵ペアを作成します。詳しくは、SSH 認証鍵を作成するをご覧ください。
- 公開 SSH 認証鍵を OS Login プロファイルにアップロードします。詳しくは、OS Login を使用する VM に鍵を追加するをご覧ください。
- Compute Engine により、鍵は Google アカウントに保存されます。
- 次のデフォルト形式でユーザー名が作成されます。
たとえば、Google アカウントに関連付けられているメールアドレスがUSERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com
の場合、生成されるユーザー名はcloudysanfrancisco_gmail_com
になります。 - 必要に応じて、Google Workspace Admin SDK Directory API を使用してユーザー名を手動で設定します。
- VM に接続します。
- Compute Engine が SSH 認証鍵を認証し、接続を許可します。
SSH 証明書での接続
各タブをクリックして、SSH 証明書を使用して VM に接続する場合に Compute Engine が SSH 接続を許可するために行う構成の詳細を確認してください。Compute Engine によって行われる構成は、VM への接続に Google Cloud コンソール、gcloud CLI、サードパーティ製ツールのいずれを使用するかによって異なります。サードパーティ製ツールを使用して接続する場合は、一部の構成を手動で行う必要があります。
コンソール
- Google Cloud コンソールの [SSH] ボタンを使用して VM に接続します。
- Compute Engine がユーザー名を設定し、一時的な SSH 認証鍵ペアを作成します。設定されるユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合や、プロジェクトがどの組織にも属していない場合は、Google アカウントのメールアドレスを使用して次の形式のユーザー名が作成されます。
たとえば、Google アカウントに関連付けられているメールアドレスがUSERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com
の場合、生成されるユーザー名はcloudysanfrancisco_gmail_com
になります。 - Compute Engine が公開鍵を OS Login 認証局に送信し、IAM 認可を実行して当該ユーザーに VM に接続する権限があることを確認します。
- OS Login 認証局が、有効期間の短い署名付き SSH 証明書を提供します。
- Compute Engine が、有効期間の短い証明書を認証し、接続を許可します。
gcloud
gcloud beta compute ssh
コマンドを使用して VM に接続します。- Compute Engine がユーザー名を設定し、一時的な SSH 認証鍵ペアを作成します。設定されるユーザー名は、組織の Cloud Identity 管理者または Google Workspace 管理者が設定したユーザー名です。組織がユーザー名を構成していない場合や、プロジェクトがどの組織にも属していない場合は、Google アカウントのメールアドレスを使用して次の形式のユーザー名が作成されます。
たとえば、Google アカウントに関連付けられているメールアドレスがUSERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com
の場合、生成されるユーザー名はcloudysanfrancisco_gmail_com
になります。 - Compute Engine が公開鍵を OS Login 認証局に送信し、IAM 認可を実行して当該ユーザーに VM に接続する権限があることを確認します。
- OS Login 認証局が、有効期間の短い署名付き SSH 証明書を提供します。
- Compute Engine が、有効期間の短い証明書を認証し、接続を許可します。
サードパーティ製ツール
- SSH 認証鍵ペアを作成します。詳しくは、SSH 認証鍵を作成するをご覧ください。
- これまで、OS Login を使用する VM に接続したことがない場合は、POSIX アカウントをプロビジョニングします。
- 次のデフォルト形式でユーザー名が作成されます。
たとえば、Google アカウントに関連付けられているメールアドレスがUSERNAME_DOMAIN_SUFFIX
cloudysanfrancisco@gmail.com
の場合、生成されるユーザー名はcloudysanfrancisco_gmail_com
になります。 - 管理者は必要に応じて、Google Workspace Admin SDK Directory API を使用してユーザー名を設定できます。組織で Workforce Identity 連携を使用している場合は、管理者に連絡してユーザー名を変更してもらう必要があります。
- 公開鍵を OS Login 認証局に送信します。
- OS Login 認証局が、有効期間の短い署名付き SSH 証明書を提供します。
- この証明書を使用して VM に接続します。
- Compute Engine が、有効期間の短い証明書を認証し、接続を許可します。
次のステップ
- OS Login を使用するメリットについて確認する。
- VM へのアクセスを管理するために OS Login を設定する。
- OS Login で SSH 証明書を必須にする方法を確認する。
- OS Login を使用しない場合のメタデータ内の SSH 認証鍵の管理方法を確認する。
- VM に接続する方法を学習する。
- 失敗した SSH 接続を診断し、解決するための方法やツールについては、SSH のトラブルシューティングをご覧ください。