In diesem Dokument wird beschrieben, wie Sie SSH-Schlüssel zu VM-Instanzen hinzufügen, die OS Login verwenden, und VMs, die metadatenbasierte SSH-Schlüssel verwenden. Wenn Sie oder Ihr Organisationsadministrator OS Login nicht aktiviert haben, verwenden Ihre VMs metadatenbasierte SSH-Schlüssel.
Hinweise
- Informationen zum Verwalten des Zugriffs auf Ihre Compute Engine-VMs finden Sie unter Zugriffsmethode auswählen.
- Erstellen Sie ein SSH-Schlüsselpaar, falls Sie das noch nicht getan haben.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
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.
Verwenden Sie den Befehl
gcloud compute os-login ssh-keys add
, um Ihrem Konto einen öffentlichen SSH-Schlüssel hinzuzufügen:gcloud compute os-login ssh-keys add \ --key-file=KEY_FILE_PATH \ --project=PROJECT \ --ttl=EXPIRE_TIME
Dabei gilt:
KEY_FILE_PATH
: Der Pfad zum öffentlichen SSH-Schlüssel auf Ihrer Workstation. Der Schlüssel muss das Formatpublic-openssh
haben.PROJECT
(Optional): Ein Projekt, in dem Sie Ihren SSH-Schlüssel verwenden möchten. Geben Sie dieses Feld an, um Ihren SSH-Schlüssel in einem Projekt außerhalb Ihrer Organisation zu verwenden oder wenn Sie kein Mitglied einer Cloud Identity-Organisation sind.EXPIRE_TIME
: Optional: Ablaufzeit für den SSH-SchlüsselBeispiel: Wenn Sie
30m
angeben, läuft der SSH-Schlüssel nach 30 Minuten ab.Dieses Flag verwendet die folgenden Einheiten:
s
für Sekundenm
für Minutenh
für Stundend
für Tage
ACCOUNT_EMAIL
: die mit Ihrem Konto verknüpfte E-Mail-Adresse.SSH_KEY
: der öffentliche Schlüssel, den Sie dem Konto hinzufügen möchten.EXPIRATION_TIMESTAMP
: die Ablaufzeit für den Schlüssel in Mikrosekunden seit der Epoche (1 Sekunde = 106 Mikrosekunden)Rufen Sie in der Google Cloud Console die Seite Metadaten auf.
Klicken Sie auf den Tab SSH-Schlüssel.
Klicken Sie auf Bearbeiten.
Klicken Sie auf Zeile hinzufügen.
Fügen Sie im Feld SSH-Schlüssel Ihren öffentlichen SSH-Schlüssel hinzu. Die Komprimierung muss in einem der folgenden Formate erfolgen:
- Format für einen Schlüssel ohne Ablaufzeit:
KEY_VALUE USERNAME
- Format für einen Schlüssel mit einer Ablaufzeit:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung zu Linux-VMs als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Format für einen Schlüssel ohne Ablaufzeit:
Klicken Sie auf Speichern.
Wenn bereits SSH-Schlüssel in Projektmetadaten vorhanden sind, müssen Sie diese jedes Mal den Projektmetadaten neu hinzufügen, wenn Sie mit der gcloud CLI einen neuen SSH-Schlüssel hinzufügen. Wenn Sie Ihre vorhandenen Schlüssel nicht noch einmal hinzufügen, werden die vorhandenen Schlüssel durch das Hinzufügen eines neuen Schlüssels gelöscht.
So fügen Sie den Projektmetadaten mit der gcloud CLI einen öffentlichen SSH-Schlüssel hinzu:
Wenn in Ihrem Projekt bereits projektweite öffentliche SSH-Schlüssel vorhanden sind, können Sie diese aus Metadaten abrufen und einer neuen Datei hinzufügen:
Führen Sie den Befehl
gcloud compute project-info describe
aus, um die SSH-Schlüssel für das Projekt abzurufen:gcloud compute project-info describe \ --format="value(commonInstanceMetadata[items][ssh-keys])"
Die Ausgabe sieht in etwa so aus:
username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
Kopieren Sie den Metadatenwert
ssh-keys
.Erstellen und öffnen Sie eine neue Textdatei auf Ihrer Workstation.
Fügen Sie in der Datei die Liste der Schlüssel ein, die Sie gerade kopiert haben.
Fügen Sie Ihren neuen Schlüssel am Ende der Liste in einem der folgenden Formate hinzu:
- Format für einen Schlüssel ohne Ablaufzeit:
USERNAME:KEY_VALUE
- Format für einen Schlüssel mit einer Ablaufzeit:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Format für einen Schlüssel ohne Ablaufzeit:
Speichern und schließen Sie die Datei.
Führen Sie den Befehl
gcloud compute project-info add-metadata
aus, um den projektweitenssh-keys
-Wert festzulegen:gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
Ersetzen Sie
KEY_FILE
durch einen der folgenden Werte:- Der Pfad zu der Datei, die Sie im vorherigen Schritt erstellt haben, wenn das Projekt vorhandene SSH-Schlüssel enthalten hat
- Der Pfad zu Ihrer neuen öffentlichen SSH-Schlüsseldatei, wenn das Projekt keine SSH-Schlüssel enthalten hat
Rufen Sie die Werte
fingerprint
undssh-keys
aus den Metadaten mit der Methodeprojects.get
ab.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Ersetzen Sie
PROJECT_ID
durch Ihre Projekt-ID.Die Antwort ähnelt dem folgenden Beispiel.
... "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"}" } ] ...
Fügen Sie den neuen Wert
ssh-keys
mit der Methodeprojects.setCommonInstanceMetadata
hinzu.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }
Dabei gilt:
PROJECT_ID
: Ihre Projekt-IDEXISTING_SSH_KEYS
: Wert des Schlüsselsssh-keys
aus der Antwort derprojects.get
-Anfrage.FINGERPRINT
: der Wert vonfingerprint
aus der Antwort derprojects.get
-AnfrageNEW_SSH_KEY
: der neue SSH-Schlüssel in einem der folgenden Formate:- Format für einen Schlüssel ohne Ablaufzeit:
USERNAME:KEY_VALUE
- Format für einen Schlüssel mit einer Ablaufzeit:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Format für einen Schlüssel ohne Ablaufzeit:
Rufen Sie in der Google Cloud Console die Seite Instanz erstellen auf.
Geben Sie die VM-Details an
Maximieren Sie den Abschnitt Erweiterte Optionen und tun Sie Folgendes:
Maximieren Sie den Abschnitt Sicherheit.
Wählen Sie Manuell generierte SSH-Schlüssel hinzufügen.
Klicken Sie auf Zeile hinzufügen.
Fügen Sie Ihren öffentlichen Schlüssel in das Textfeld ein. Die Komprimierung muss in einem der folgenden Formate erfolgen:
- Format für einen Schlüssel ohne Ablaufzeit:
KEY_VALUE USERNAME
- Format für einen Schlüssel mit einer Ablaufzeit:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung zu Linux-VMs als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Format für einen Schlüssel ohne Ablaufzeit:
Klicken Sie zum Erstellen und Starten der VM auf Erstellen.
-
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.
Wenn Sie mit der gcloud CLI eine VM erstellen und gleichzeitig einen öffentlichen SSH-Schlüssel zu den Instanzmetadaten hinzufügen möchten, verwenden Sie den Befehl
gcloud compute instances create
:gcloud compute instances create VM_NAME \ --metadata=ssh-keys=PUBLIC_KEY
Dabei gilt:
VM_NAME
: der Name der neuen VM.PUBLIC_KEY
: Ihr öffentlicher SSH-Schlüssel in einem der folgenden Formate:- Format für einen Schlüssel ohne Ablaufzeit:
USERNAME:KEY_VALUE
- Format für einen Schlüssel mit einer Ablaufzeit:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Format für einen Schlüssel ohne Ablaufzeit:
Mit dem Flag
--metadata-from-file=ssh-keys=FILE_PATH
können Sie mehrere SSH-Schlüssel hinzufügen. Fügen Sie in der Datei eine Liste von Nutzernamen und öffentlichen SSH-Schlüsseln in einem der vorherigen Formate hinzu.PROJECT_ID
: die Projekt-IDZONE
: die Zone der VM- Format für einen Schlüssel ohne Ablaufzeit:
USERNAME:KEY_VALUE
- Format für einen Schlüssel mit einer Ablaufzeit:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
Klicken Sie auf den Namen der VM, für die Sie einen SSH-Schlüssel hinzufügen möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie unter SSH-Schlüssel auf Element hinzufügen.
Fügen Sie Ihren öffentlichen Schlüssel in das Textfeld ein. Der Schlüssel muss eines der folgenden Formate haben:
- Format für einen Schlüssel ohne Ablaufzeit:
KEY_VALUE USERNAME
- Format für einen Schlüssel mit einer Ablaufzeit:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung zu Linux-VMs als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Format für einen Schlüssel ohne Ablaufzeit:
Klicken Sie auf Speichern.
-
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.
Wenn bereits SSH-Schlüssel in Instanzmetadaten vorhanden sind, müssen Sie diese jedes Mal den Instanzmetadaten neu hinzufügen, wenn Sie mit der gcloud CLI einen neuen SSH-Schlüssel hinzufügen. Wenn Sie Ihre vorhandenen Schlüssel nicht noch einmal hinzufügen, werden die vorhandenen Schlüssel durch das Hinzufügen eines neuen Schlüssels gelöscht.
So fügen Sie den Instanzmetadaten mit der gcloud CLI einen öffentlichen SSH-Schlüssel hinzu:
Wenn Ihre VM bereits öffentliche SSH-Schlüssel auf Instanzebene hat, rufen Sie sie aus den Metadaten ab und fügen Sie sie einer neuen Datei hinzu:
Führen Sie den Befehl
gcloud compute instances describe
aus, um die Metadaten für die VM abzurufen:gcloud compute instances describe VM_NAME
Ersetzen Sie VM_NAME durch den Namen der VM, für die Sie öffentliche SSH-Schlüssel hinzufügen oder entfernen müssen.
Die entsprechende Ausgabe sieht etwa so aus:
... metadata: ...
- key: ssh-keys
value: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...Kopieren Sie den Metadatenwert
ssh-keys
.Erstellen und öffnen Sie eine neue Textdatei auf Ihrer Workstation.
Fügen Sie in der Datei die Liste der Schlüssel ein, die Sie gerade kopiert haben.
Fügen Sie Ihren neuen Schlüssel am Ende der Liste in einem der folgenden Formate hinzu:
- Format für einen Schlüssel ohne Ablaufzeit:
USERNAME:KEY_VALUE
- Format für einen Schlüssel mit einer Ablaufzeit:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Speichern und schließen Sie die Datei.
Führen Sie den Befehl
gcloud compute instances add-metadata
aus, um den Wertssh-keys
festzulegen:gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
Dabei gilt:
VM_NAME
: die VM, für die Sie den SSH-Schlüssel hinzufügen möchtenKEY_FILE
mit einem der folgenden:- Der Pfad zu der Datei, die Sie im vorherigen Schritt erstellt haben, wenn die VM SSH-Schlüssel enthalten hat
- Der Pfad zu Ihrer neuen öffentlichen SSH-Schlüsseldatei, wenn die VM keine SSH-Schlüssel enthalten hat
Rufen Sie die Werte
fingerprint
undssh-keys
aus den Metadaten mit der Methodeinstances.get
ab.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Dabei gilt:
PROJECT_ID
: Ihre Projekt-IDZONE
: Zone der VM, der einen SSH-Schlüssel hinzugefügt werden sollVM_NAME
: VM, für die Sie einen SSH-Schlüssel hinzufügen
Die Antwort ähnelt dem folgenden Beispiel.
... "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"}" } ] ...
Fügen Sie den neuen Wert
ssh-keys
mit der Methodeinstances.setMetadata
hinzu.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" }
Dabei gilt:
PROJECT_ID
: Ihre Projekt-IDEXISTING_SSH_KEYS
: der Wert des Schlüsselsssh-keys
aus der Antwort derinstances.get
-AnfrageFINGERPRINT
: derfingerprint
aus der Antwort derprojects.get
-AnfrageNEW_SSH_KEY
: der neue SSH-Schlüssel in einem der folgenden Formate:- Format für einen Schlüssel ohne Ablaufzeit:
USERNAME:KEY_VALUE
- Format für einen Schlüssel mit einer Ablaufzeit:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Dabei gilt:
KEY_VALUE
: der Wert des öffentlichen SSH-SchlüsselsUSERNAME
: Ihr Nutzername. Beispiel:cloudysanfrancisco
odercloudysanfrancisco_gmail_com
.Bei Linux-VMs kann
USERNAME
nichtroot
sein, es sei denn, Sie konfigurieren Ihre VM so, dass eine Root-Anmeldung zugelassen wird. Weitere Informationen finden Sie unter Verbindung als Root-Nutzer herstellen.Bei Windows-VMs, die Active Directory (AD) verwenden, muss dem Nutzernamen die AD-Domain im Format
DOMAIN\
vorangestellt werden. Beispiel: Der Nutzercloudysanfrancisco
innerhalb des ADad.example.com
hat denUSERNAME
example\cloudysanfrancisco
.EXPIRE_TIME
: die Zeit, zu der der Schlüssel abläuft, im ISO 8601-Format. Beispiel:2021-12-04T20:12:00+0000
- Format für einen Schlüssel ohne Ablaufzeit:
- Verbindung zu VMs herstellen
- Zugriff auf Instanzen verwalten
- Dateien auf VMs übertragen
- Mehr darüber erfahren, wie SSH-Verbindungen zu Linux-VMs in Compute Engine funktionieren.
Terraform
Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Weitere Informationen unter Set up authentication for a local development environment.
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Schlüssel zu VMs hinzufügen, die OS Login verwenden
VMs, die OS Login verwenden, akzeptieren SSH-Schlüssel, die Ihrem Google-Konto zugeordnet sind. Sie können einen öffentlichen SSH-Schlüssel mit Ihrem Google-Konto über die gcloud CLI oder die OS Login API verknüpfen. Als Administrator für Ihre Organisation können Sie den Nutzerkonten mithilfe der Directory API SSH-Schlüssel hinzufügen.
Wenn Sie Ihrem Google-Konto SSH-Schlüssel hinzufügen, generiert Compute Engine einen Nutzernamen für Sie, indem der Nutzername und die Domain aus der E-Mail-Adresse kombiniert werden, die mit Ihrem Google-Konto verknüpft ist. Wenn Ihre E-Mail-Adresse beispielsweise
cloudysanfrancisco@gmail.com
lautet, lautet Ihr Nutzernamecloudysanfrancisco_gmail_com
. Wenn Sie einen SSH-Schlüssel in einem Projekt hinzufügen, das sich außerhalb Ihrer Organisation befindet, wird Ihrem Nutzernamen das Präfixext_
vorangestellt, z. B.ext_cloudysanfrancisco_gmail_com
. Der Administrator Ihrer Organisation kann Ihren Nutzernamen mit der Directory API anpassen. Wenn Sie bereits einen Nutzernamen konfiguriert haben, verwendet Compute Engine diesen Nutzernamen, wenn Sie SSH-Schlüssel hinzufügen.gcloud
Terraform
Verwenden Sie zum Hinzufügen eines öffentlichen SSH-Schlüssels zu Ihrem Konto die Ressource
google_client_openid_userinfo
zusammen mit der Ressourcegoogle_os_login_ssh_public_key
.REST
Verwenden Sie die Methode
users.importSshPublicKey
der OS Login API, um Ihrem Konto einen öffentlichen SSH-Schlüssel hinzuzufügen:POST https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL:importSshPublicKey { "key": "SSH_KEY", "expirationTimeUsec": "EXPIRATION_TIMESTAMP" }
Dabei gilt:
SSH-Schlüssel zu VMs hinzufügen, die metadatenbasierte SSH-Schlüssel verwenden
VMs, die kein OS Login verwenden, speichern SSH-Schlüssel in Compute Engine-Projekt- und Instanzmetadaten. Wenn OS Login für eine VM aktiviert ist, ignoriert der Gast-Agent der VM die in Metadaten gespeicherten Schlüssel.
Sie können in Projektmetadaten gespeicherte SSH-Schlüssel verwenden, um auf alle VMs in einem Projekt zuzugreifen. Sie können in den Instanzmetadaten gespeicherte SSH-Schlüssel verwenden, um auf einzelne VMs zuzugreifen.
Compute Engine entfernt abgelaufene SSH-Schlüssel zwar nicht automatisch aus den Metadaten, allerdings können abgelaufene Schlüssel nicht zum Herstellen neuer Verbindungen zu VMs verwendet werden. Informationen zum Entfernen von abgelaufenen Schlüsseln aus Metadaten finden Sie unter SSH-Schlüssel von VMs mit metadatenbasierten Schlüsseln entfernen.
Sie können einen öffentlichen SSH-Schlüssel zu Projekt- oder VM-Instanzmetadaten mithilfe der Google Cloud Console, der gcloud CLI oder REST hinzufügen.
SSH-Schlüssel zu Projektmetadaten hinzufügen
Sie können Projektmetadaten einen öffentlichen SSH-Schlüssel hinzufügen, um auf alle VMs in einem Projekt zuzugreifen. Ausgenommen sind VMs, die projektweite SSH-Schlüssel blockieren. Weitere Informationen zum Blockieren projektweiter SSH-Schlüssel finden Sie unter SSH-Schlüssel von VMs blockieren, die metadatenbasierte SSH-Schlüssel verwenden.
Console
So fügen Sie den Projektmetadaten mithilfe der Cloud Console einen öffentlichen SSH-Schlüssel hinzu:
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
Verwenden Sie die Ressource
google_compute_project_metadata
, um Ihren Projektmetadaten einen öffentlichen SSH-Schlüssel hinzuzufügen.REST
Wenn bereits SSH-Schlüssel in Projektmetadaten vorhanden sind, müssen Sie diese jedes Mal den Projektmetadaten hinzufügen, wenn Sie mit der Compute Engine API einen neuen SSH-Schlüssel hinzufügen. Wenn Sie Ihre vorhandenen Schlüssel nicht noch einmal hinzufügen, werden die vorhandenen Schlüssel durch das Hinzufügen eines neuen Schlüssels gelöscht.
So fügen Sie den Projektmetadaten mithilfe der Compute Engine API einen öffentlichen SSH-Schlüssel hinzu:
SSH-Schlüssel zu Instanzmetadaten hinzufügen
Sie können den Instanzmetadaten einen öffentlichen SSH-Schlüssel hinzufügen, wenn Sie eine VM erstellen oder nachdem Sie eine VM erstellt haben.
SSH-Schlüssel während der VM-Erstellung zu Instanzmetadaten hinzufügen
Sie können während der VM-Erstellung SSH-Schlüssel zu Instanzmetadaten hinzufügen. Verwenden Sie dazu die Cloud Console, die gcloud CLI oder die Compute Engine API.
Console
Gehen Sie so vor, um mithilfe der Cloud Console eine VM zu erstellen und gleichzeitig den öffentlichen SSH-Schlüssel in die Instanzmetadaten einzufügen:
gcloud
Terraform
Verwenden Sie die Ressource
google_compute_instance
, um Ihren Instanzmetadaten einen öffentlichen SSH-Schlüssel hinzuzufügen.REST
Wenn Sie eine VM erstellen und gleichzeitig den öffentlichen SSH-Schlüssel zu den Instanzmetadaten mit Compute Engine hinzuzufügen möchten, erstellen Sie eine
POST
-Anfrage an die Methodeinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Dabei gilt:
Geben Sie im Anfragetext die Nutzernamen und öffentlichen SSH-Schlüssel im Attribut
items
an:... { "items": [ { "key": "ssh-keys", "value": "PUBLIC_KEY" } ] } ...
Ersetzen Sie
PUBLIC_KEY
durch Ihren öffentlichen Schlüssel in einem der folgenden Formate:Dabei gilt:
Sie können mehrere SSH-Schlüssel hinzufügen, indem Sie zwischen den Schlüsseln
\n
einfügen.SSH-Schlüssel nach VM-Erstellung zu Instanzmetadaten hinzufügen
Sie können nach der VM-Erstellung SSH-Schlüssel zu Instanzmetadaten hinzufügen. Verwenden Sie dazu die Cloud Console, die gcloud CLI oder die Compute Engine API.
Console
So fügen Sie den Instanzmetadaten mithilfe der Cloud Console einen öffentlichen SSH-Schlüssel hinzu:
gcloud
REST
Wenn bereits SSH-Schlüssel in Instanzmetadaten vorhanden sind, müssen Sie diese jedes Mal den Instanzmetadaten hinzufügen, wenn Sie mit der Compute Engine API einen neuen SSH-Schlüssel hinzufügen. Wenn Sie Ihre vorhandenen Schlüssel nicht noch einmal hinzufügen, werden die vorhandenen Schlüssel durch das Hinzufügen eines neuen Schlüssels gelöscht.
So fügen Sie den Instanzmetadaten mithilfe der Compute Engine API einen öffentlichen SSH-Schlüssel hinzu:
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-12-22 (UTC).
-