OS Login 証明書をサポートする VM は、SSH 認証鍵と SSH 証明書からの接続をサポートします。SSH 証明書は、別の信頼できる鍵(この場合は OS Login が管理する認証局)によって署名された SSH 認証鍵です。このドキュメントでは、SSH 接続に SSH 証明書を要求し、署名なしの SSH 認証鍵からの接続をブロックするように OS Login VM を設定する方法について説明します。
VM への接続に SSH 証明書を必要とするように OS Login を設定すると、証明書認証局によって署名された SSH 証明書のみが VM への接続を許可されます。署名されていない SSH 認証鍵からの接続は拒否されます。SSH 証明書の有効期限は 5 分です。有効期限が切れると、VM への接続に使用できなくなるため、新しい証明書を生成する必要があります。
悪意のあるユーザーに対するセキュリティを強化するために、SSH 接続に SSH 証明書を必要とするよう OS Login を設定することをおすすめします。SSH 証明書は有効期間が短く、特定の VM でのみ有効です。つまり、不正使用された場合、攻撃対象領域は大幅に小さくなり、攻撃期間は有効期間の長い SSH 認証鍵よりも大幅に短くなります。
組織で Workforce Identity 連携を使用している場合は、Workforce Identity 連携と OS Login を使用するで、組織の SSH 証明書を有効にする方法を確認してください。
始める前に
- OS Login を設定し、OS Login の IAM ロールを割り当てます。
-
まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- SSH 証明書を使用するには、接続先の VM に OpenSSH バージョン 7.4 以降が必要です。
[メタデータ] ページに移動します。
[編集] をクリックします。
[項目を追加] をクリックします。
- [キー] フィールドに「
enable-oslogin
」と入力します。 - [値] に「
TRUE
」と入力します。
- [キー] フィールドに「
[項目を追加] をクリックします。
- [キー] フィールドに「
enable-oslogin-certificates
」と入力します。 - [値] に「
TRUE
」と入力します。
- [キー] フィールドに「
[保存] をクリックします。
[VM インスタンス] ページに移動します。
SSH 証明書を必須にする VM の名前をクリックします。
[編集] をクリックします。
[カスタム メタデータ] セクションで [項目を追加] をクリックします。
- [キー] フィールドに「
enable-oslogin
」と入力します。 - [値] に「
TRUE
」と入力します。
- [キー] フィールドに「
[項目を追加] をクリックします。
- [キー] フィールドに「
enable-oslogin-certificates
」と入力します。 - [値] に「
TRUE
」と入力します。
- [キー] フィールドに「
[保存] をクリックします。
- In the Google Cloud console, go to the VM instances page.
-
In the list of virtual machine instances, click SSH in the row of
the instance that you want to connect to.
SSH 認証鍵を作成します(まだ作成していない場合)。
projects.locations.signSshPublicKey
メソッドを使用して公開 SSH 認証鍵に署名します。POST https://oslogin.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey { "ssh_public_key": "PUBLIC_KEY" "compute_instance": "COMPUTE_INSTANCE", "service_account": "SERVICE_ACCOUNT" }
次のように置き換えます。
PROJECT_ID
: 接続する VM を含むプロジェクトのプロジェクト ID。LOCATION
: 接続する VM が配置されているリージョンPUBLIC_KEY
: SSH 公開鍵ファイルの内容COMPUTE_INSTANCE
: 接続する Compute Engine インスタンス(projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID
の形式)SERVICE_ACCOUNT
: インスタンスに関連付けられているサービス アカウント。インスタンスにサービス アカウントが関連付けられていない場合は、このフィールドを削除します。
projects.locations.signSshPublicKey
メソッドの出力から SSH 証明書をコピーし、その内容を新しいファイルに保存します。次のコマンドを実行して、SSH 証明書ファイルに権限を設定します。
sudo chmod 600 FILE_NAME
FILE_NAME
は、ファイル名に置き換えます。次のコマンドを使用して VM に接続します。
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
次のように置き換えます。
PATH_TO_PRIVATE_KEY
: 秘密 SSH 認証鍵ファイルのパス。PATH_TO_SSH_CERTIFICATE
: SSH 証明書ファイルのパス。USERNAME
: OS Login のユーザー名EXTERNAL_IP
: VM の外部 IP アドレス。
- VM でサポートされていないバージョンの OpenSSH が使用されている。この問題を回避するには、インスタンス メタデータで
enable-oslogin-certificates
をFALSE
に設定して、VM のメタデータで証明書を無効にします。 - OS Login の詳細を確認する。
- 2 段階認証プロセスを使用して OS Login を設定する方法を学習する。
- 組織で OS Login を管理する方法を確認する。
制限事項
SSH 証明書を必須にする
プロジェクト内の OS Login VM または単一の VM へのすべての SSH 接続に SSH 証明書を必要とするように OS Login を設定できます。SSH 証明書を必須にするように OS Login を設定すると、 Google Cloud コンソールと gcloud CLI からの SSH 接続で SSH 証明書がデフォルトで使用されます。OS Login で証明書を必須にせずに、証明書を使用して VM に接続する場合は、SSH 証明書を使用して VM に接続するで説明されているように、サードパーティ製ツールを使用して接続する必要があります。
OS Login が有効になっているプロジェクト内のすべての VM で SSH 証明書を必須にする
OS Login を使用するプロジェクト内のすべての VM へのすべての接続で SSH 証明書を必須にするには、 Google Cloud コンソールまたは gcloud CLI を使用します。
コンソール
OS Login が有効になっている VM へのすべての接続で SSH 証明書を必須にするには、 Google Cloud コンソールを使用して、プロジェクトのメタデータで
enable-oslogin
とenable-oslogin-certificates
をTRUE
に設定します。gcloud
OS Login が有効になっている VM へのすべての接続で SSH 証明書を必須にするには、
gcloud compute project-info add-metadata
コマンドを使用して、プロジェクトのメタデータでenable-oslogin=TRUE
とenable-oslogin-certificates=TRUE
を設定します。gcloud compute project-info add-metadata \ --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
OS Login が有効になっている単一の VM で SSH 証明書を必須にする
OS Login を使用する単一の VM へのすべての SSH 接続で証明書を必須にするには、 Google Cloud コンソールまたは gcloud CLI を使用します。
コンソール
単一の VM へのすべての接続で SSH 証明書を必須にするには、Google Cloud コンソールを使用して、インスタンス メタデータで
enable-oslogin
とenable-oslogin-certificates
をTRUE
に設定します。gcloud
単一の VM へのすべての接続に SSH 証明書を要求するには、
gcloud compute instances add-metadata
コマンドを使用して、インスタンス メタデータにenable-oslogin=TRUE
とenable-oslogin-certificates=TRUE
を設定します。gcloud compute instances add-metadata VM_NAME \ --metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
VM_NAME
は実際の VM 名に置き換えます。SSH 証明書を使用して VM に接続する
SSH 証明書を必須にするように OS Login を設定すると、 Google Cloud コンソールと gcloud CLI からの SSH 接続で SSH 証明書がデフォルトで使用されます。OS Login で証明書を必須にせず、証明書を使用して VM に接続する場合は、サードパーティのツールを使用して接続する必要があります。
コンソール
次の手順で、Google Cloud コンソールのブラウザから SSH を使用して VM に接続します。
gcloud
gcloud beta compute ssh
コマンドを使用して、証明書を使用して VM に接続します。gcloud beta compute ssh VM_NAME
VM_NAME
は、接続する VM インスタンスの名前に置き換えます。サードパーティ製ツール
サードパーティの SSH クライアントで SSH 証明書を使用するには、次の操作を行います。
トラブルシューティング
SSH 証明書を必須に設定した VM に接続できない場合は、次の原因が考えられます。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-07-11 UTC。
-