このドキュメントでは、OS Login を使用する仮想マシン(VM)インスタンスとメタデータベースの SSH 認証鍵を使用する VM に SSH 認証鍵を追加する方法について説明します。ユーザーまたは組織管理者が OS Login を有効にしていない場合、VM はメタデータ ベースの SSH 認証鍵を使用します。
始める前に
- Compute Engine VM へのアクセスの管理については、アクセス方法の選択をご覧ください。
- まだ作成していない場合は、SSH 認証鍵ペアを作成します。
-
まだ設定していない場合は、認証を設定します。認証とは、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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
アカウントに公開 SSH 認証鍵を追加するには、
gcloud compute os-login ssh-keys add
コマンドを使用します。gcloud compute os-login ssh-keys add \ --key-file=KEY_FILE_PATH \ --project=PROJECT \ --ttl=EXPIRE_TIME
次のように置き換えます。
KEY_FILE_PATH
: ワークステーションの公開 SSH 認証鍵のパス。鍵はpublic-openssh
形式を使用する必要があります。PROJECT
: 省略可。SSH 認証鍵を使用するプロジェクト。このフィールドを指定すると、組織外のプロジェクトまたは Cloud Identity のメンバーではないプロジェクトで SSH 認証鍵を使用できます。EXPIRE_TIME
: 省略可。SSH 認証鍵の有効期限。たとえば、
30m
を指定すると、SSH 認証鍵は 30 分後に期限切れになります。このフラグには、以下の単位が使用されます。
s
(秒)m
(分)h
(時間)d
(日)
ACCOUNT_EMAIL
: アカウントに関連付けられたメールアドレスSSH_KEY
: アカウントに適用する公開鍵EXPIRATION_TIMESTAMP
: エポックを起点とする鍵の有効期間(マイクロ秒単位。1 秒 = 106 マイクロ秒)。Google Cloud コンソールで、[メタデータ] ページに移動します。
[SSH 認証鍵] タブをクリックします。
[編集] をクリックします。
[項目を追加] をクリックします。
表示された [SSH 認証鍵] フィールドに、公開 SSH 認証鍵を追加します。鍵の形式は次のいずれかにする必要があります。
- 有効期限のない鍵の形式:
KEY_VALUE USERNAME
- 有効期限のある鍵の形式:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとして Linux VM に接続するをご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- 有効期限のない鍵の形式:
[保存] をクリックします。
プロジェクト メタデータに既存の SSH 認証鍵がある場合は、gcloud CLI を使用して新しい SSH 認証鍵を追加するたびに、プロジェクト メタデータに再追加する必要があります。既存の鍵を再追加しないと、新しい鍵を追加したときに既存の鍵が消去されます。
gcloud CLI を使用して公開 SSH 認証鍵をプロジェクト メタデータに追加する手順は、次のとおりです。
プロジェクトにすでにプロジェクト全体の公開 SSH 認証鍵がある場合は、メタデータから取得して新しいファイルに追加します。
gcloud compute project-info describe
コマンドを実行して、プロジェクトの SSH 認証鍵を取得します。gcloud compute project-info describe \ --format="value(commonInstanceMetadata[items][ssh-keys])"
出力は次のようになります。
username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
ssh-keys
メタデータ値をコピーします。ワークステーションで新しいテキスト ファイルを作成して開きます。
コピーした鍵のリストをファイルに貼り付けます。
新しい鍵を次の形式でリストの末尾に追加します。
- 有効期限のない鍵の形式:
USERNAME:KEY_VALUE
- 有効期限のある鍵の形式:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとしてのインスタンスへの接続をご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- 有効期限のない鍵の形式:
ファイルを保存して閉じます。
gcloud compute project-info add-metadata
コマンドを実行して、プロジェクト全体のssh-keys
値を設定します。gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
KEY_FILE
を次のいずれかに置き換えます。- プロジェクトに既存の SSH 認証鍵がある場合は、前の手順で作成したファイルのパス
- プロジェクトに既存の SSH 認証鍵がない場合は、新しい公開 SSH 認証鍵ファイルのパス
projects.get
メソッドを使用して、メタデータからfingerprint
とssh-keys
の値を取得します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
PROJECT_ID
は、実際のプロジェクト ID に置き換えます。レスポンスは次の例のようになります。
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...
projects.setCommonInstanceMetadata
メソッドを使用して、新しいssh-keys
値を追加します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }
次のように置き換えます。
PROJECT_ID
: プロジェクト IDEXISTING_SSH_KEYS
:projects.get
リクエストのレスポンスからのssh-keys
鍵の値FINGERPRINT
:projects.get
リクエストのレスポンスからのfingerprint
の値NEW_SSH_KEY
: 新しい SSH 認証鍵。次のいずれかの形式です。- 有効期限のない鍵の形式:
USERNAME:KEY_VALUE
- 有効期限のある鍵の形式:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとしてのインスタンスへの接続をご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- 有効期限のない鍵の形式:
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
VM の詳細を指定します。
[詳細オプション] セクションを開き、次の操作を行います。
[セキュリティ] セクションを開きます。
[手動で生成した SSH 認証鍵の追加] を選択します。
[項目を追加] をクリックします。
テキスト ボックスに公開鍵を追加します。鍵の形式は、次のいずれかにする必要があります。
- 有効期限のない鍵の形式:
KEY_VALUE USERNAME
- 有効期限のある鍵の形式:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとして Linux VM に接続するをご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- 有効期限のない鍵の形式:
VM を作成して起動するには、[作成] をクリックします。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
VM を作成し、gcloud CLI を使用して公開 SSH 認証鍵をインスタンス メタデータに追加するには、
gcloud compute instances create
コマンドを使用します。gcloud compute instances create VM_NAME \ --metadata=ssh-keys=PUBLIC_KEY
次のように置き換えます。
VM_NAME
: 新しい VM の名前PUBLIC_KEY
: 次のいずれかの形式の公開 SSH 認証鍵:- 有効期限のない鍵の形式:
USERNAME:KEY_VALUE
- 有効期限のある鍵の形式:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとしてのインスタンスへの接続をご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- 有効期限のない鍵の形式:
--metadata-from-file=ssh-keys=FILE_PATH
フラグを使用すると、複数の SSH 認証鍵を追加できます。このファイルに、上記のいずれかの形式でユーザー名と公開 SSH 認証鍵のリストを追加します。PROJECT_ID
: プロジェクト IDZONE
: VM のゾーン- 有効期限のない鍵の形式:
USERNAME:KEY_VALUE
- 有効期限のある鍵の形式:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとしてのインスタンスへの接続をご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
Google Cloud コンソールで [VM インスタンス] ページに移動します。
SSH 認証鍵を追加する VM の名前をクリックします。
[編集] をクリックします。
[SSH 認証鍵] で、[項目を追加] をクリックします。
テキスト ボックスに公開鍵を追加します。鍵の形式は次のいずれかにする必要があります。
- 有効期限のない鍵の形式:
KEY_VALUE USERNAME
- 有効期限のある鍵の形式:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとして Linux VM に接続するをご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- 有効期限のない鍵の形式:
[保存] をクリックします。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
インスタンス メタデータに既存の SSH 認証鍵がある場合は、gcloud CLI を使用して新しい SSH 認証鍵を追加するたびに、インスタンス メタデータに再追加する必要があります。既存の鍵を再追加しないと、新しい鍵を追加したときに既存の鍵が消去されます。
gcloud CLI を使用して公開 SSH 認証鍵をインスタンス メタデータに追加する手順は、次のとおりです。
VM にインスタンス レベルの公開 SSH 認証鍵がすでにある場合は、メタデータから取得して新しいファイルに追加します。
gcloud compute instances describe
コマンドを実行して、VM のメタデータを取得します。gcloud compute instances describe VM_NAME
VM_NAME は、公開 SSH 認証鍵を追加または削除する必要がある VM の名前に置き換えます。
出力は次のようになります。
... metadata: ...
- key: ssh-keys
value: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...ssh-keys
メタデータ値をコピーします。ワークステーションで新しいテキスト ファイルを作成して開きます。
コピーした鍵のリストをファイルに貼り付けます。
新しい鍵を次の形式でリストの末尾に追加します。
- 有効期限のない鍵の形式:
USERNAME:KEY_VALUE
- 有効期限のある鍵の形式:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとしてのインスタンスへの接続をご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- ファイルを保存して閉じます。
gcloud compute instances add-metadata
コマンドを実行して、ssh-keys
値を設定します。gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
次のように置き換えます。
VM_NAME
: SSH 認証鍵を追加する VMKEY_FILE
は、次のいずれかに置き換えます。- VM に既存の SSH 認証鍵がある場合、前の手順で作成したファイルのパス
- VM に既存の SSH 認証鍵がない場合は、新しい公開 SSH 認証鍵ファイルのパス
instances.get
メソッドを使用して、メタデータからfingerprint
とssh-keys
の値を取得します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
次のように置き換えます。
PROJECT_ID
: プロジェクト IDZONE
: SSH 認証鍵を追加する VM のゾーンVM_NAME
: SSH 認証鍵を追加する VM
レスポンスは次の例のようになります。
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...
instances.setMetadata
メソッドを使用して、新しいssh-keys
値を追加します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }
次のように置き換えます。
PROJECT_ID
: プロジェクト IDEXISTING_SSH_KEYS
:instances.get
リクエストのレスポンスからのssh-keys
鍵の値FINGERPRINT
:projects.get
リクエストのレスポンスからのfingerprint
NEW_SSH_KEY
: 新しい SSH 認証鍵。次のいずれかの形式です。- 有効期限のない鍵の形式:
USERNAME:KEY_VALUE
- 有効期限のある鍵の形式:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
次のように置き換えます。
KEY_VALUE
: 公開 SSH 認証鍵の値USERNAME
: ユーザー名。例:cloudysanfrancisco
、cloudysanfrancisco_gmail_com
Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、
USERNAME
をroot
にすることはできません。詳細については、root ユーザーとしてのインスタンスへの接続をご覧ください。Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを
DOMAIN\
形式で追加する必要があります。たとえば、ad.example.com
AD 内のユーザーcloudysanfrancisco
のUSERNAME
はexample\cloudysanfrancisco
です。EXPIRE_TIME
: 鍵が期限切れになる時刻(ISO 8601 形式)。例:2021-12-04T20:12:00+0000
- 有効期限のない鍵の形式:
- VM に接続する方法を学習する。
- インスタンスへのアクセスを管理する方法を学習する。
- VM にファイルを転送する方法を学習する。
- Compute Engine での Linux VM への SSH 接続の仕組みを学習する。
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
OS Login を使用する VM に鍵を追加する
OS Login を使用する VM は、Google アカウントに関連付けられた SSH 認証鍵を受け入れます。gcloud CLI または OS Login API を使用して公開 SSH 認証鍵を Google アカウントに関連付けることができます。組織の管理者は、Directory API を使用して SSH 認証鍵をユーザー アカウントに追加できます。
Google アカウントに SSH 認証鍵を追加すると、Compute Engine により、Google アカウントに関連付けられているメールアドレスのユーザー名とドメインを組み合わせてユーザー名が生成されます。たとえば、メールアドレスが
cloudysanfrancisco@gmail.com
の場合、ユーザー名はcloudysanfrancisco_gmail_com
になります。組織外のプロジェクトに SSH 認証鍵を追加する場合、ユーザー名にはext_
という接頭辞が付きます(例:ext_cloudysanfrancisco_gmail_com
)。組織管理者は、Directory API を使用してユーザー名をカスタマイズできます。すでにユーザー名が構成されている場合、Compute Engine は SSH 認証鍵を追加するときにそのユーザー名を使用します。gcloud
Terraform
公開 SSH 認証鍵をアカウントに追加するには、
google_client_openid_userinfo
リソースとgoogle_os_login_ssh_public_key
リソースを使用します。REST
公開 SSH 認証鍵をアカウントに追加するには、OS Login API の
users.importSshPublicKey
メソッドを使用します。POST https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL:importSshPublicKey { "key": "SSH_KEY", "expirationTimeUsec": "EXPIRATION_TIMESTAMP" }
次のように置き換えます。
メタデータ ベースの SSH 認証鍵を使用する VM に SSH 認証鍵を追加する
OS Login を使用しないVM は、Compute Engine のプロジェクトとインスタンス メタデータに SSH 認証鍵を保存します。VM で OS Login が有効になっている場合、VM のゲスト エージェントはメタデータに保存されている鍵を無視します。
プロジェクト メタデータに保存された SSH 認証鍵を使用して、プロジェクト内のすべての VM にアクセスできます。インスタンス メタデータに保存された SSH 認証鍵を使用して、個々の VM にアクセスできます。
Compute Engine は、有効期限になった時点で期限切れの SSH 認証鍵を自動的にメタデータから削除しませんが、期限切れの鍵を使用して VM への新しい接続を確立することはできません。メタデータから期限切れの鍵を削除する場合は、メタデータ ベースの鍵を使用する VM から SSH 認証鍵を削除するをご覧ください。
公開 SSH 認証鍵は、Google Cloud コンソール、gcloud CLI、または REST を使用して、プロジェクトまたは VM インスタンスのメタデータに追加できます。
プロジェクト メタデータに SSH 認証鍵を追加する
公開 SSH 認証鍵をプロジェクト メタデータに追加して、プロジェクト内のすべての VM にアクセスできます(ただし、プロジェクト全体の SSH 認証鍵をブロックする VM は除きます)。プロジェクト全体の SSH 認証鍵をブロックする方法については、メメタデータ ベースの SSH 認証鍵を使用する VM からの SSH 認証鍵をブロックするをご覧ください。
コンソール
Google Cloud コンソールを使用して公開 SSH 認証鍵をプロジェクト メタデータに追加する手順は、次のとおりです。
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
公開 SSH 認証鍵をプロジェクト メタデータに追加するには、
google_compute_project_metadata
リソースを使用します。REST
プロジェクト メタデータに既存の SSH 認証鍵がある場合は、Compute Engine API を使用して新しい SSH 認証鍵を追加するたびに、プロジェクト メタデータに再追加する必要があります。既存の鍵を再追加しないと、新しい鍵を追加したときに既存の鍵が消去されます。
Compute Engine API を使用して公開 SSH 認証鍵をプロジェクト メタデータに追加するには、次の手順を行います。
インスタンス メタデータに SSH 認証鍵を追加する
公開 SSH 認証鍵は、VM の作成時または VM の作成後に、インスタンス メタデータに追加できます。
VM の作成時にインスタンス メタデータに SSH 認証鍵を追加する
VM の作成時に、Google Cloud コンソール、gcloud CLI、または Compute Engine API を使用して SSH 認証鍵をインスタンス メタデータに追加できます。
コンソール
Google Cloud コンソールを使用して VM を作成すると同時に、公開 SSH 認証鍵をインスタンス メタデータに追加する手順は、次のとおりです。
gcloud
Terraform
公開 SSH 認証鍵をインスタンス メタデータに追加するには、
google_compute_instance
リソースを使用します。REST
VM を作成すると同時に、Compute Engine を使用して公開 SSH 認証鍵をインスタンス メタデータに追加するには、
instances.insert
メソッドにPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
次のように置き換えます。
リクエストの本文で、
items
プロパティにユーザー名と公開 SSH 認証鍵を入力します。... { "items": [ { "key": "ssh-keys", "value": "PUBLIC_KEY" } ] } ...
PUBLIC_KEY
は、次のいずれかの形式の公開鍵に置き換えます。次のように置き換えます。
複数の SSH 認証鍵を追加するには、鍵の間に
\n
を追加します。VM 作成後のインスタンス メタデータに SSH 認証鍵を追加する
VM の作成後に、Google Cloud コンソール、gcloud CLI、または Compute Engine API を使用して SSH 認証鍵をインスタンス メタデータに追加できます。
コンソール
Google Cloud コンソールを使用して公開 SSH 認証鍵をインスタンス メタデータに追加する手順は、次のとおりです。
gcloud
REST
インスタンス メタデータに既存の SSH 認証鍵がある場合は、Compute Engine API を使用して新しい SSH 認証鍵を追加するたびに、インスタンス メタデータに再追加する必要があります。既存の鍵を再追加しないと、新しい鍵を追加したときに既存の鍵が消去されます。
Compute Engine API を使用して公開 SSH 認証鍵をインスタンス メタデータに追加するには、次の手順を行います。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-