VMs, die OS Login-Zertifikate unterstützen, unterstützen Verbindungen über SSH-Schlüssel und SSH-Zertifikate. SSH-Zertifikate sind SSH-Schlüssel, die von einem anderen vertrauenswürdigen Schlüssel signiert wurden, in diesem Fall von einer Zertifizierungsstelle, die von OS Login verwaltet wird. In diesem Dokument wird beschrieben, wie Sie OS Login-VMs so einrichten, dass für SSH-Verbindungen SSH-Zertifikate erforderlich sind und Verbindungen über nicht signierte SSH-Schlüssel blockiert werden.
Wenn Sie OS Login so einrichten, dass für Verbindungen zu VMs SSH-Zertifikate erforderlich sind, können nur SSH-Zertifikate, die von der Zertifizierungsstelle signiert wurden, eine Verbindung zu VMs herstellen. Verbindungen über nicht signierte SSH-Schlüssel werden abgelehnt. SSH-Zertifikate laufen nach fünf Minuten ab. Danach können sie nicht mehr verwendet werden, um eine Verbindung zu VMs herzustellen, und es muss ein neues Zertifikat generiert werden.
Wir empfehlen, OS Login so einzurichten, dass für SSH-Verbindungen SSH-Zertifikate erforderlich sind, um eine zusätzliche Sicherheitsebene gegen böswillige Nutzer zu schaffen. SSH-Zertifikate sind kurzlebig und nur für eine bestimmte VM gültig. Wenn sie manipuliert werden, ist die Angriffsfläche daher deutlich kleiner und das Angriffsfenster deutlich kürzer als bei langlebigen SSH-Schlüsseln.
Wenn Ihre Organisation die Mitarbeiteridentitätsföderation verwendet, finden Sie unter Mitarbeiteridentitätsföderation mit OS Login verwenden Informationen zum Aktivieren von SSH-Zertifikaten für Ihre Organisation.
Hinweis
- Richten Sie OS Login ein und weisen Sie OS Login-IAM-Rollen zu.
-
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. Wenn Sie
Code oder Beispiele aus einer lokalen Entwicklungsumgebung ausführen möchten, können Sie sich bei
Compute Engine authentifizieren, indem Sie eine der folgenden Optionen auswählen:
Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:
Console
Wenn Sie über die Google Cloud Console auf Google Cloud Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.
gcloud
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
- Legen Sie eine Standardregion und -zone fest.
Beschränkungen
- Die VM, zu der Sie eine Verbindung herstellen, muss OpenSSH Version 7.4 oder höher haben, um SSH-Zertifikate zu verwenden.
SSH-Zertifikate erforderlich machen
Sie können OS Login so einrichten, dass für alle SSH-Verbindungen zu OS Login-VMs in Ihrem Projekt oder für einzelne VMs SSH-Zertifikate erforderlich sind. Nachdem Sie OS Login so eingerichtet haben, dass SSH-Zertifikate erforderlich sind, werden für SSH-Verbindungen über die Google Cloud Console und die gcloud CLI standardmäßig SSH-Zertifikate verwendet. Wenn Sie OS Login nicht so einrichten möchten, dass Zertifikate erforderlich sind, aber Zertifikate verwenden möchten, um eine Verbindung zu VMs herzustellen, müssen Sie Drittanbietertools verwenden, wie im Abschnitt Verbindung zu einer VM mit einem SSH-Zertifikat herstellen beschrieben.
SSH-Zertifikate für alle VMs mit OS Login in einem Projekt erforderlich machen
Wenn Sie SSH-Zertifikate für alle Verbindungen zu allen VMs, die OS Login in Ihrem Projekt verwenden, erforderlich machen möchten, verwenden Sie die Google Cloud Console oder die gcloud CLI.
Console
Wenn Sie SSH-Zertifikate für alle Verbindungen zu VMs mit OS Login erforderlich machen möchten, legen Sie in der
Console Google Cloud in den Projekt-Metadaten enable-oslogin und
enable-oslogin-certificates auf TRUE fest:
Öffnen Sie die Seite Metadaten.
Klicken Sie auf Bearbeiten.
Klicken Sie auf Zeile hinzufügen.
- Geben Sie im Feld Schlüssel
enable-osloginein. - Geben Sie im Feld Wert
TRUEein.
- Geben Sie im Feld Schlüssel
Klicken Sie auf Zeile hinzufügen.
- Geben Sie im Feld Schlüssel
enable-oslogin-certificatesein. - Geben Sie im Feld Wert
TRUEein.
- Geben Sie im Feld Schlüssel
Klicken Sie auf Speichern.
gcloud
Wenn Sie SSH-Zertifikate für alle Verbindungen zu VMs mit OS Login erforderlich machen möchten, legen Sie mit
dem gcloud compute project-info add-metadata Befehl
in den Projekt
Metadaten enable-oslogin=TRUE und enable-oslogin-certificates=TRUE fest:
gcloud compute project-info add-metadata \
--metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
SSH-Zertifikate auf einer einzelnen VM mit OS Login erforderlich machen
Wenn Sie Zertifikate für alle SSH-Verbindungen zu einer einzelnen VM, die OS Login verwendet, erforderlich machen möchten, verwenden Sie die Google Cloud Console oder die gcloud CLI.
Console
Wenn Sie SSH-Zertifikate für alle Verbindungen zu einer einzelnen VM erforderlich machen möchten, legen Sie in der
Google Cloud Console enable-oslogin und
enable-oslogin-certificates in den Instanz-Metadaten auf TRUE fest:
Rufen Sie die Seite VM-Instanzen auf.
Klicken Sie auf den Namen der VM, für die Sie SSH-Zertifikate erforderlich machen möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie im Abschnitt Benutzerdefinierte Metadaten auf Element hinzufügen.
- Geben Sie im Feld Schlüssel
enable-osloginein. - Geben Sie im Feld Wert
TRUEein.
- Geben Sie im Feld Schlüssel
Klicken Sie auf Zeile hinzufügen.
- Geben Sie im Feld Schlüssel
enable-oslogin-certificatesein. - Geben Sie im Feld Wert
TRUEein.
- Geben Sie im Feld Schlüssel
Klicken Sie auf Speichern.
gcloud
Wenn Sie SSH-Zertifikate für alle Verbindungen zu einer einzelnen VM erforderlich machen möchten, legen Sie mit dem
gcloud compute instances add-metadata Befehl
in den Instanz
Metadaten enable-oslogin=TRUE und enable-oslogin-certificates=TRUE fest:
gcloud compute instances add-metadata VM_NAME \
--metadata enable-oslogin=TRUE,enable-oslogin-certificates=TRUE
Ersetzen Sie VM_NAME durch den Namen Ihrer VM.
Verbindung zu einer VM mit einem SSH-Zertifikat herstellen
Nachdem Sie OS Login so eingerichtet haben, dass SSH-Zertifikate erforderlich sind, werden für SSH-Verbindungen über die Google Cloud Console und die gcloud CLI standardmäßig SSH-Zertifikate verwendet. Wenn Sie OS Login nicht so einrichten möchten, dass Zertifikate erforderlich sind, aber Zertifikate verwenden möchten, um eine Verbindung zu VMs herzustellen, müssen Sie Drittanbietertools verwenden.
Console
So stellen Sie eine Verbindung zu VMs über die Google Cloud Console mit SSH-in-Browser her:
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
-
Klicken Sie in der Liste der virtuellen Maschineninstanzen in der Zeile der Instanz, zu der Sie eine Verbindung herstellen möchten, auf SSH.

gcloud
Verwenden Sie den
gcloud beta compute ssh Befehl
um eine Verbindung zu einer VM mit einem Zertifikat herzustellen:
gcloud beta compute ssh VM_NAME
Ersetzen Sie VM_NAME durch den Namen der VM, zu der Sie eine Verbindung herstellen möchten.
Drittanbieter-Tools
So verwenden Sie ein SSH-Zertifikat mit einem Drittanbieter-SSH-Client:
Erstellen Sie einen SSH-Schlüssel, falls Sie nicht bereits einen haben.
Signieren Sie Ihren öffentlichen SSH-Schlüssel mit der
projects.locations.signSshPublicKey-Methode: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" }Ersetzen Sie Folgendes:
PROJECT_ID: die Projekt-ID des Projekts, das die VM enthält, zu der Sie eine Verbindung herstellen möchtenLOCATION: die Region, in der sich die VM befindet, zu der Sie eine Verbindung herstellen möchtenPUBLIC_KEY: der Inhalt Ihrer öffentlichen SSH-SchlüsseldateiCOMPUTE_INSTANCE: die Compute Engine Instanz, zu der eine Verbindung hergestellt werden soll, im Formatprojects/PROJECT_ID/zones/ZONE/instances/INSTANCE_ID.SERVICE_ACCOUNT: das Dienstkonto, das an die Instanz angehängt ist. Löschen Sie dieses Feld, wenn an die Instanz kein Dienstkonto angehängt ist.
Kopieren Sie das SSH-Zertifikat aus der Ausgabe von
projects.locations.signSshPublicKeyund speichern Sie den Inhalt in einer neuen Datei.Legen Sie die Berechtigungen für die SSH-Zertifikatsdatei fest, indem Sie folgenden Befehl ausführen:
sudo chmod 600 FILE_NAME
Ersetzen Sie
FILE_NAMEdurch den Namen der Datei.Stellen Sie mit dem folgenden Befehl eine Verbindung zur VM her:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
Ersetzen Sie Folgendes:
PATH_TO_PRIVATE_KEY: der Pfad zur privaten SSH-Schlüsseldatei.PATH_TO_SSH_CERTIFICATE: der Pfad zu der Zertifikatsdatei Ihres SSH-Kontos.USERNAME: Ihr OS Login-NutzernameEXTERNAL_IP: die externe IP-Adresse der VM
Fehlerbehebung
Wenn Sie keine Verbindung zu VMs herstellen können, für die SSH-Zertifikate erforderlich sind, kann das folgende Gründe haben:
- Ihre VM verwendet eine nicht unterstützte Version von OpenSSH. Um
dieses Problem zu umgehen, deaktivieren Sie Zertifikate in den Metadaten der VM, indem Sie
enable-oslogin-certificatesaufFALSEin den Instanz-Metadaten festlegen.
Nächste Schritte
- Mehr zu OS Login.
- OS Login mit Bestätigung in zwei Schritten einrichten .
- OS Login in einer Organisation verwalten