SSH-Schlüssel in Metadaten verwalten

In diesem Leitfaden wird beschrieben, wie Sie den Zugriff auf eine Linux-Instanz steuern. Dazu erstellen Sie SSH-Schlüssel und bearbeiten öffentliche SSH-Schlüssel-Metadaten.

Compute Engine erstellt und verwaltet SSH-Schlüssel automatisch für Sie, wenn Sie mithilfe von SSH über den Browser oder mit dem gcloud-Befehlszeilentool Verbindungen zu Instanzen herstellen.

Wenn Sie ein erfahrener Nutzer sind, der SSH-Schlüssel manuell verwalten muss, verwalten Sie den Zugriff auf Instanzen mit OS Login. Wenn Sie SSH-Schlüssel auf Instanzen mit OS Login verwalten, werden metadatenbasierte SSH-Schlüsselkonfigurationen für die betreffenden Instanzen deaktiviert.

Vorbereitung

Erforderliche Berechtigungen für diese Aufgabe

Zum Ausführen dieser Aufgabe benötigen Sie die folgenden Berechtigungen.

  • compute.instances.setMetadata – wenn Metadaten für die Instanz festgelegt werden
  • compute.projects.setCommonInstanceMetadata für das Projekt, wenn projektweite Metadaten festgelegt werden
  • iam.serviceAccounts.actAs für das Projekt, wenn projektweite Metadaten festgelegt werden

Risiken der manuellen Schlüsselverwaltung

Wenn Sie öffentliche SSH-Schlüssel manuell über die GCP Console, das gcloud-Befehlszeilentool oder die API erstellen und verwalten, müssen Sie einen Überblick über die verwendeten Schlüssel behalten und öffentliche SSH-Schlüssel für Nutzer löschen, die keinen Zugriff haben sollen. Wenn z. B. ein Teammitglied das Projekt verlässt, müssen Sie den jeweiligen SSH-Schlüssel aus den Metadaten entfernen, damit der Nutzer nicht weiter auf Ihre Instanzen zugreifen kann.

Falsche Angaben in den Aufrufen im gcloud-Tool oder in der API können darüber hinaus dazu führen, dass alle öffentlichen SSH-Schlüssel in Ihrem Projekt oder auf Ihren Instanzen gelöscht werden, wodurch die Verbindungen Ihrer Projektmitglieder unterbrochen werden.

Wenn Sie unsicher sind, ob Sie Ihre Schlüssel selbst verwalten sollten, verwenden Sie stattdessen die Compute Engine-Tools, um eine Verbindung zu Ihren Instanzen herzustellen.

Übersicht

Durch das Erstellen und Verwalten von SSH-Schlüsseln können Sie Nutzern ermöglichen, über Drittanbietertools auf eine Linux-Instanz zuzugreifen.

Ein SSH-Schlüssel besteht aus den folgenden Dateien:

  • einer öffentlichen SSH-Schlüsseldatei, die auf Metadaten auf Instanzebene oder auf projektweite Metadaten angewendet wird
  • einer privaten SSH-Schlüsseldatei, die der Nutzer auf seinen lokalen Geräten speichert

Wenn ein Nutzer seinen privaten SSH-Schlüssel präsentiert, kann er mithilfe eines Drittanbietertools eine Verbindung zu einer beliebigen Instanz herstellen, die für die entsprechende öffentliche SSH-Schlüsseldatei konfiguriert ist, selbst wenn er kein Mitglied des Cloud Platform-Projekts ist. Sie können also steuern, auf welche Instanzen ein Nutzer zugreifen kann, indem Sie die öffentlichen SSH-Schlüssel-Metadaten für eine oder mehrere Instanzen ändern.

So bearbeiten Sie öffentliche SSH-Schlüssel-Metadaten:

  1. Wählen Sie das Tool zum Bearbeiten von Metadaten aus:

    • Mit der Google Cloud Platform Console können Sie Metadaten in Ihrem Browser bearbeiten.
    • Wenn Sie lieber mit der Befehlszeile arbeiten, können Sie zum Bearbeiten von Metadaten das gcloud-Befehlszeilentool verwenden.
    • Wenn Sie ein erfahrener Nutzer sind, können Sie die Verwaltung von SSH-Schlüsseln mit API-Methoden automatisieren.
  2. Wenn Sie Nutzer zu einer Linux-Instanz hinzufügen müssen, bereiten Sie die entsprechenden öffentlichen SSH-Schlüssel mithilfe folgender Prozesse vor:

  3. Bearbeiten Sie öffentliche SSH-Schlüssel-Metadaten, um Nutzer zu einer Linux-Instanz hinzuzufügen oder von dieser zu entfernen.

  4. Stellen Sie über ein Drittanbietertool eine Verbindung zu Ihrer Linux-Instanz her, um sicherzustellen, dass alle öffentlichen SSH-Schlüssel korrekt hinzugefügt oder entfernt wurden. Ein Nutzer kann sich nur mit einer Instanz verbinden, wenn sein öffentlicher SSH-Schlüssel über den Metadatenserver für die Instanz verfügbar ist und er den entsprechenden privaten SSH-Schlüssel hat.

Neue SSH-Schlüssel erstellen

Wenn Sie keine bestehende private SSH-Schlüsseldatei und keine entsprechende öffentliche SSH-Schlüsseldatei haben, die Sie verwenden können, müssen Sie einen neuen SSH-Schlüssel generieren. Wenn Sie einen vorhandenen SSH-Schlüssel verwenden möchten, müssen Sie die öffentliche SSH-Schlüsseldatei suchen.

Linux und macOS

Auf Linux- oder macOS-Workstations können Schlüssel mit dem ssh-keygen-Tool erzeugt werden.

  1. Öffnen Sie ein Terminalfenster auf der Workstation und erzeugen Sie einen neuen Schlüssel mit dem Befehl ssh-keygen. Geben Sie das Flag -C an, um einen Kommentar mit Ihrem Nutzernamen hinzuzufügen.

    ssh-keygen -t rsa -f ~/.ssh/[KEY_FILENAME] -C [USERNAME]
    

    Dabei gilt Folgendes:

    • [KEY_FILENAME] ist der Name, den Sie für Ihre SSH-Schlüsseldateien verwenden möchten. Der Dateiname my-ssh-key erzeugt beispielsweise die private Schlüsseldatei my-ssh-key und die öffentliche Schlüsseldatei my-ssh-key.pub.
    • [USERNAME] ist der Nutzer, auf den dieser SSH-Schlüssel angewendet wird.

    Dieser Befehl generiert eine private SSH-Schlüsseldatei und einen entsprechenden öffentlichen SSH-Schlüssel mit der folgenden Struktur:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    Dabei gilt Folgendes:

    • [KEY_VALUE] ist der generierte Schlüsselwert.
    • [USERNAME] ist der Nutzer, für den dieser Schlüssel gilt.
  2. Beschränken Sie den Zugriff auf den privaten Schlüssel, sodass nur Sie ihn lesen können und er von niemandem geändert werden kann.

    chmod 400 ~/.ssh/[KEY_FILENAME]
    

    Dabei ist [KEY_FILENAME] der Name, den Sie für Ihre SSH-Schlüsseldateien verwendet haben.

Wiederholen Sie diesen Vorgang für jeden Nutzer, der einen neuen Schlüssel benötigt. Dann suchen Sie die selbst erstellten öffentlichen SSH-Schlüssel sowie alle vorhandenen öffentlichen SSH-Schlüssel, die Sie zu einem Projekt oder einer Instanz hinzufügen möchten.

Windows

Windows hat kein integriertes Tool zum Erzeugen von SSH-Schlüsseln. Wenn Sie mit einer Windows-Workstation arbeiten, müssen Sie deshalb ein Drittanbietertool verwenden, um SSH-Schlüssel zu erzeugen. Hier wird beschrieben, wie Sie SSH-Schlüssel mit dem Tool PuTTYgen (nur auf Englisch verfügbar) erzeugen.

  1. Laden Sie puttygen.exe herunter.

  2. Führen Sie PuTTYgen aus. In diesem Beispiel führen Sie einfach die heruntergeladene Datei puttygen.exe aus. Es öffnet sich ein Fenster, in dem Sie die Einstellungen für die Schlüsselerzeugung konfigurieren können.

  3. Klicken Sie auf Generate (Generieren) und befolgen Sie die Anweisungen auf dem Bildschirm, um einen neuen Schlüssel zu erzeugen. In den meisten Fällen können Sie die Standardparameter einfach übernehmen. Die generierten Schlüssel müssen aber mindestens 2.048 Bit haben. Wenn Sie den Schlüssel generiert haben, zeigt das Tool den Wert des öffentlichen Schlüssels an.

  4. Ersetzen Sie im Abschnitt Key comment (Schlüsselkommentar) den vorhandenen Text durch den Nutzernamen des Nutzers, für den der Schlüssel angewendet werden soll.

  5. Sie haben die Möglichkeit, zum Schutz des Schlüssels eine Key passphrase (Schlüssel-Passphrase) einzugeben.

  6. Klicken Sie auf Save private key (Privaten Schlüssel speichern), um den privaten Schlüssel in einer Datei mit der Erweiterung .ppk zu speichern.

  7. Klicken Sie auf Save public key (Öffentlichen Schlüssel speichern), um den öffentlichen Schlüssel zur späteren Verwendung in einer Datei zu speichern. Lassen Sie das PuTTYgen-Fenster vorerst geöffnet.

    Der korrekt formatierte öffentliche Schlüssel wird oben im PuTTYgen-Bildschirm angezeigt:

    Screenshot von öffentlichem PuTTYgen-Schlüssel

    Dieser öffentliche Schlüssel hat die folgende Struktur:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    Dabei gilt Folgendes:

    • [KEY_VALUE] ist der generierte Schlüsselwert.
    • [USERNAME] ist der Nutzer, für den dieser Schlüssel gilt.

Wiederholen Sie diesen Vorgang für jeden Nutzer, für den ein Schlüssel erstellt werden muss. Wenn weitere SSH-Schlüssel für Nutzer vorliegen, die Sie einem Projekt oder einer Instanz hinzufügen möchten, sollten Sie die entsprechenden öffentlichen SSH-Schlüssel jetzt suchen. Ansonsten formatieren Sie die öffentlichen SSH-Schlüssel, die Sie erstellt haben.

SSH-Schlüssel suchen

Es kann aus mehreren Gründen notwendig sein, einen SSH-Schlüssel zu suchen. Wenn Sie z. B. den öffentlichen SSH-Schlüssel eines Nutzers zu einem Projekt oder einer Instanz hinzufügen möchten, benötigen Sie Zugriff auf die entsprechende öffentliche Schlüsseldatei. Alternativ müssen Sie möglicherweise Ihre private SSH-Schlüsseldatei suchen, um eine Verbindung zu einer Linux-Instanz herzustellen.

Wird ein SSH-Schlüssel erstellt, wird er an einem Standardspeicherort gespeichert. Die Standardspeicherorte und -namen Ihrer öffentlichen und privaten SSH-Schlüsseldateien hängen von den Tools ab, mit denen der Schlüssel erstellt wurde.

Linux und macOS

Wenn Sie das ssh-keygen-Tool verwendet haben, um einen Schlüssel auf einer Linux- oder macOS-Workstation zu erstellen, wurde der Schlüssel an den folgenden Speicherorten gespeichert:

  • Öffentliche Schlüsseldatei: ~/.ssh/[KEY_FILENAME].pub
  • Private Schlüsseldatei: ~/.ssh/[KEY_FILENAME]

Dabei ist [KEY_FILENAME] der Dateiname des SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.

Wenn Sie den öffentlichen SSH-Schlüssel in die Metadaten eines Projekts oder einer Instanz einfügen oder daraus entfernen müssen, formatieren Sie die öffentliche SSH-Schlüsseldatei.

Windows

Wenn Sie das PuTTYgen-Tool verwendet haben, um ein Schlüsselpaar auf einer Windows-Workstation zu erstellen, wurden Ihre öffentliche und Ihre private Schlüsseldatei an den Speicherorten gespeichert, die Sie folgendermaßen festgelegt haben:

  • Öffentlicher Schlüssel: [PUBLIC_KEY_FILENAME]
  • Privater Schlüssel: [PRIVATE_KEY_FILENAME].ppk

Dabei sind [PUBLIC_KEY_FILENAME] und [PRIVATE_KEY_FILENAME] die Dateinamen der öffentlichen und privaten SSH-Schlüssel, die beim erstmaligen Speichern des Schlüssels festgelegt wurden.

Ein standardmäßiger öffentlicher SSH-Schlüssel, der mit PuTTYgen erstellt wurde, sollte das folgende Format haben:

ssh-rsa [KEY_VALUE] [USERNAME]

Dabei gilt Folgendes:

  • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
  • [USERNAME] ist der Nutzer auf der Instanz, für den der Schlüssel angewendet wurde.

So zeigen Sie den öffentlichen SSH-Schlüssel in PuTTYgen mit der korrekten Formatierung an:

  1. Führen Sie PuTTYgen aus. Wenn Sie das Tool nicht haben, laden Sie puttygen.exe herunter und führen Sie die Datei aus.

  2. Klicken Sie auf Load (Laden), um Ihre öffentliche SSH-Schlüsseldatei auszuwählen und zu öffnen.

  3. Wenn die öffentliche Schlüsseldatei geladen wurde, wird der öffentliche SSH-Schlüsselwert mit der korrekten Formatierung oben im PuTTYgen-Bildschirm angezeigt:

    Screenshot von öffentlichem PuTTYgen-Schlüssel

Wenn Sie den öffentlichen SSH-Schlüssel in die Metadaten eines Projekts oder einer Instanz einfügen oder daraus entfernen müssen, formatieren Sie die öffentliche SSH-Schlüsseldatei.

gcloud

Wenn Sie bereits eine Verbindung zu einer Instanz über das gcloud-Tool hergestellt haben, sind die Schlüssel bereits generiert und werden auf das Projekt oder die Instanz angewendet. Die Schlüsseldateien befinden sich an den folgenden Speicherorten:

  • Linux und macOS
    • Öffentlicher Schlüssel: $HOME/.ssh/google_compute_engine.pub
    • Privater Schlüssel: $HOME/.ssh/google_compute_engine
  • Windows:
    • Öffentlicher Schlüssel: C:\Users\[USERNAME]\.ssh\google_compute_engine.pub
    • Privater Schlüssel: C:\Users\[USERNAME]\.ssh\google_compute_engine

Dabei ist [USERNAME] Ihr Nutzername auf der lokalen Workstation.

Wenn Sie wissen möchten, wo Ihre öffentlichen SSH-Schlüssel angewendet werden, suchen Sie in den Projektmetadaten und in den Instanzmetadaten nach dem öffentlichen Schlüssel. Wenn Sie den öffentlichen SSH-Schlüssel zu den Metadaten eines Projekts oder einer Instanz hinzufügen oder daraus entfernen müssen, formatieren Sie die öffentliche SSH-Schlüsseldatei.

Öffentliche SSH-Schlüsseldateien formatieren

Bevor Sie Ihre öffentlichen SSH-Schlüssel in die Projekt- oder Instanzmetadaten laden können, müssen Sie das Format jeder öffentlichen Schlüsseldatei überprüfen, die Sie einfügen möchten.

Je nachdem, welches Tool Sie zur Bearbeitung von Metadaten verwenden, formatieren Sie die Schlüssel für die GCP Console, das gcloud-Befehlszeilentool oder die API-Methoden. Optional können Sie Ihre öffentlichen SSH-Schlüssel auch ändern, um Ablaufzeiten hinzuzufügen, zu bearbeiten oder zu entfernen.

Konsole

So überprüfen Sie das Format eines öffentlichen SSH-Schlüssels:

  1. Suchen und öffnen Sie die öffentliche SSH-Schlüsseldatei.

  2. Überprüfen Sie das Format der öffentlichen SSH-Schlüsseldatei.

    • Ein öffentlicher SSH-Schlüssel, der ein Ablaufdatum enthält, muss das folgende Format haben:

      ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}

      Dabei gilt Folgendes:

      • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
      • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
      • [EXPIRE_TIME] ist ein Wert im ISO 8601-Format (Seite nur auf Englisch verfügbar). Beispiel: 2018-12-04T20:12:00+0000
    • Ansonsten muss der öffentliche SSH-Schlüssel das folgende Format aufweisen:

      ssh-rsa [KEY_VALUE] [USERNAME]

      Dabei gilt Folgendes:

      • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
      • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
  3. Wenn Ihr Schlüssel nicht mit einem der obigen Formate übereinstimmt oder wenn Sie eine Ablaufzeit einfügen, bearbeiten oder entfernen möchten, befolgen Sie zur Formatierung des öffentlichen SSH-Schlüssels die nachstehenden Anweisungen. Ansonsten lassen Sie die Datei geöffnet und fügen den öffentlichen SSH-Schlüssel zu Projekt- oder Instanzmetadaten hinzu.

So formatieren Sie einen öffentlichen SSH-Schlüssel für die Konsole:

  1. Erstellen Sie eine Kopie Ihrer öffentlichen Schlüsseldatei. Verwenden Sie die Kopie für Compute Engine und bewahren Sie die Originaldatei zur Verwendung mit den anderen SSH-Konfigurationen auf.

  2. Öffnen Sie die Kopie Ihrer öffentlichen Schlüsseldatei.

  3. Ändern Sie die öffentliche Schlüsseldatei so, dass sie das folgende Format aufweist:

    ssh-rsa [KEY_VALUE] [USERNAME]

    Dabei gilt Folgendes:

    • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
    • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.

    Wenn der öffentliche SSH-Schlüssel eine Ablaufzeit enthalten soll, können Sie das Format der Datei auch folgendermaßen ändern:

    ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}

    Dabei gilt Folgendes:

    • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
    • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
    • [EXPIRE_TIME] ist ein Wert im ISO 8601-Format (Seite nur auf Englisch verfügbar). Beispiel: 2018-12-04T20:12:00+0000
  4. Speichern Sie die Änderungen und lassen Sie die Datei geöffnet.

Jetzt können Sie den öffentlichen SSH-Schlüssel zu Projekt- oder Instanzmetadaten hinzufügen.

gcloud oder API

So überprüfen Sie das Format eines öffentlichen SSH-Schlüssels:

  1. Suchen und öffnen Sie die öffentliche SSH-Schlüsseldatei.

  2. Überprüfen Sie das Format der öffentlichen SSH-Schlüsseldatei.

    • Ein öffentlicher SSH-Schlüssel, der ein Ablaufdatum enthält, muss das folgende Format haben:

      [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}

      Dabei gilt Folgendes:

      • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
      • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
      • [EXPIRE_TIME] ist ein Wert im ISO 8601-Format (Seite nur auf Englisch verfügbar). Beispiel: 2018-12-04T20:12:00+0000
    • Ansonsten muss der öffentliche SSH-Schlüssel das folgende Format aufweisen:

      [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]

      Dabei gilt Folgendes:

      • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
      • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
  3. Wenn Ihr Schlüssel nicht mit einem der obigen Formate übereinstimmt oder wenn Sie eine Ablaufzeit einfügen, bearbeiten oder entfernen möchten, befolgen Sie zur Formatierung des öffentlichen SSH-Schlüssels die nachstehenden Anweisungen. Ansonsten lassen Sie die Datei geöffnet und fügen den öffentlichen SSH-Schlüssel zu Projekt- oder Instanzmetadaten hinzu.

So formatieren Sie einen öffentlichen SSH-Schlüssel für das gcloud-Tool oder die API:

  1. Erstellen Sie eine Kopie Ihrer öffentlichen Schlüsseldatei. Verwenden Sie die Kopie für Compute Engine und bewahren Sie die Originaldatei zur Verwendung mit den anderen SSH-Konfigurationen auf.

  2. Öffnen Sie die Kopie Ihrer öffentlichen Schlüsseldatei. Standardmäßig sollte die Datei dieses Format haben:

    ssh-rsa [KEY_VALUE] [USERNAME]

    Dabei gilt Folgendes:

    • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
    • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
  3. Kopieren Sie den Nutzernamen, der sich am Ende der Datei befindet, und fügen Sie ihn am Anfang der Datei gefolgt von einem Doppelpunkt ein. Die öffentliche SSH-Schlüsseldatei sollte jetzt dieses Format haben:

    [USERNAME]:ssh-rsa [KEY_VALUE] [USERNAME]

    Dabei gilt Folgendes:

    • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
    • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
  4. Optional können Sie die Ablaufzeit des Schlüssels festlegen. Löschen Sie dazu den zweiten [USERNAME] und fügen Sie den Wert google-ssh am Ende der Schlüsseldatei ein, gefolgt von den Feldern userName und expireOn im JSON-Format.

    [USERNAME]:ssh-rsa [KEY_VALUE] google-ssh {"userName":"[USERNAME]","expireOn":"[EXPIRE_TIME]"}

    Dabei gilt Folgendes:

    • [USERNAME] ist der Nutzer dieses SSH-Schlüssels, der beim Erstellen des Schlüssels festgelegt wurde.
    • [KEY_VALUE] ist der Wert des öffentlichen SSH-Schlüssels.
    • [EXPIRE_TIME] ist ein Wert im ISO 8601-Format (Seite nur auf Englisch verfügbar). Beispiel: 2018-12-04T20:12:00+0000
  5. Speichern Sie die Änderungen und lassen Sie die Datei geöffnet.

Jetzt können Sie den öffentlichen SSH-Schlüssel zu Projekt- oder Instanzmetadaten hinzufügen.

Öffentliche SSH-Schlüssel-Metadaten bearbeiten

Der Nutzerzugriff auf eine Linux-Instanz mithilfe von Drittanbietertools hängt davon ab, welche öffentlichen SSH-Schlüssel für die Instanz verfügbar sind. Sie können festlegen, welche öffentlichen SSH-Schlüssel für eine Linux-Instanz verfügbar sind, indem Sie die Metadaten bearbeiten, in denen Ihre öffentlichen SSH-Schlüssel und die zugehörigen Informationen gespeichert sind. Es gibt drei Arten von Metadaten für Ihre öffentlichen SSH-Schlüssel:

  • Projektweite öffentliche SSH-Schlüssel: Verwenden Sie diese Metadaten, um den Nutzern allgemeinen Zugriff zu gewähren und damit die Möglichkeit, eine Verbindung zu den meisten Instanzen Ihres Projekts herzustellen.
  • Projektweite öffentliche SSH-Schlüssel zulassen oder sperren: Verwenden Sie diesen Metadatenwert, um projektweite öffentliche SSH-Schlüssel auf einer bestimmten Instanz zu sperren oder zuzulassen. Standardmäßig lässt eine Instanz alle projektweiten öffentlichen SSH-Schlüssel zu. Sperren Sie projektweite öffentliche SSH-Schlüssel, wenn Sie den Instanzzugriff auf Nutzer mit öffentlichen SSH-Schlüsseln auf Instanzebene beschränken möchten.
  • Öffentliche SSH-Schlüssel auf Instanzebene: Verwenden Sie diese Metadaten, um Nutzern einen Sonderzugriff zu gewähren und damit die Möglichkeit, eine Verbindung zu einer bestimmten Instanz in Ihrem Projekt herzustellen, selbst wenn projektweite öffentliche SSH-Schlüssel von dieser Instanz gesperrt werden.

Projektweite öffentliche SSH-Schlüssel hinzufügen oder entfernen

Verwenden Sie projektweite öffentliche SSH-Schlüssel, um Nutzern allgemeinen Zugriff auf eine Linux-Instanz zu gewähren. Projektweite öffentliche SSH-Schlüssel ermöglichen Nutzern den Zugriff auf alle Linux-Instanzen in einem Projekt, die projektweite öffentliche SSH-Schlüssel zulassen. Wenn eine Instanz projektweite öffentliche SSH-Schlüssel sperrt, kann ein Nutzer mit seinem projektweiten öffentlichen SSH-Schlüssel keine Verbindung zu der Instanz herstellen, es sei denn, der gleiche öffentliche SSH-Schlüssel wird ebenfalls den Instanzmetadaten hinzugefügt.

Konsole

So können Sie vorgehen, um projektweite öffentliche SSH-Schlüssel in der GCP Console hinzuzufügen oder zu entfernen:

  1. Rufen Sie in der Google Cloud Platform Console die Metadatenseite für Ihr Projekt auf.

    Zur Metadatenseite

  2. Klicken Sie unter SSH-Schlüssel auf Bearbeiten.

  3. Ändern Sie die projektweiten öffentlichen SSH-Schlüssel:

    • Klicken Sie unten auf der Seite auf Element hinzufügen, um einen öffentlichen SSH-Schlüssel hinzuzufügen. Ein Textfeld wird geöffnet. Kopieren Sie den Inhalt Ihrer öffentlichen SSH-Schlüsseldatei und fügen Sie diesen in das Textfeld ein. Wiederholen Sie diesen Vorgang für jeden öffentlichen SSH-Schlüssel, den Sie einfügen möchten.
    • Zum Entfernen eines öffentlichen SSH-Schlüssels klicken Sie auf die Entfernen-Schaltfläche neben dem Schlüssel:

      Screenshot von öffentlichem PuTTYgen-Schlüssel

      Wiederholen Sie diesen Vorgang für jeden öffentlichen SSH-Schlüssel, den Sie entfernen möchten.

  4. Wenn Sie fertig sind, klicken Sie unten auf der Seite auf Speichern.

gcloud

So fügen Sie projektweite öffentliche SSH-Schlüssel mit dem gcloud-Tool hinzu oder entfernen diese:

  1. Wenn in Ihrem Projekt bereits projektweite öffentliche SSH-Schlüssel vorhanden sind, können Sie diese aus den Metadaten abrufen:

    1. Rufen Sie die vorhandenen Metadaten des Projekts ab:

      gcloud compute project-info describe
      
    2. Suchen Sie in der Ausgabe nach dem Metadatenwert ssh-keys:

      ...
      metadata:
        fingerprint: QCofVTHlggs=
        items:
        - key: ssh-keys
          value: |-
            [USERNAME_1]:ssh-rsa [EXISTING_KEY_VALUE_1] [USERNAME_1]
            [USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
      ...
      

      Dabei gilt Folgendes:

      • [USERNAME_1] und [USERNAME_2] sind die Nutzernamen für Ihre vorhandenen Schlüssel.
      • [EXISTING_KEY_VALUE_1] und [EXISTING_KEY_VALUE_2] sind die Werte öffentlicher Schlüssel, die bereits auf das Projekt angewendet wurden.
    3. Kopieren Sie die öffentlichen SSH-Schlüssel.

  2. Erstellen und öffnen Sie eine neue Textdatei auf Ihrer lokalen Workstation.

  3. Erstellen Sie in der Datei eine Liste aller öffentlichen SSH-Schlüssel, die Sie in Projektmetadaten einfügen oder beibehalten möchten. Wenn projektweite Schlüssel vorliegen, werden alle Schlüssel entfernt, die Sie nicht in die Liste aufnehmen.

    Die folgende Beispielliste sorgt dafür, dass der Schlüssel für [USERNAME_1] entfernt wird, da der SSH-Schlüssel dieses Nutzers ausgelassen wurde. Der SSH-Schlüssel für [USERNAME_2] wird beibehalten und der SSH-Schlüssel für [USERNAME_3] wird hinzugefügt, weil beide Schlüssel in der Liste enthalten sind.

    [USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
    [USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]
    

    Dabei gilt Folgendes:

    • [USERNAME_1], [USERNAME_2] und [USERNAME_3] sind die Nutzernamen der öffentlichen SSH-Schlüssel.
    • [EXISTING_KEY_VALUE_1] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie entfernen möchten.
    • [EXISTING_KEY_VALUE_2] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie behalten möchten.
    • [NEW_KEY_VALUE] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie einfügen möchten.
  4. Speichern und schließen Sie die Datei.

  5. Geben Sie in der Eingabeaufforderung den Befehl compute project-info add-metadata ein, um den projektweiten ssh-keys-Wert einzustellen. Fügen Sie das Flag --metadata-from-file hinzu und geben Sie den Pfad zu Ihrer Listendatei an.

    gcloud compute project-info add-metadata --metadata-from-file ssh-keys=[LIST_PATH]
    

    Dabei ist [LIST_PATH] der Pfad zu Ihrer Liste öffentlicher SSH-Schlüssel.

API

Mit der Methode instances.setMetadata können Sie projektweite öffentliche Schlüssel hinzufügen oder entfernen.

  1. Mit der Methode projects.get rufen Sie den Metadatenwert für fingerprint ab. Wenn Sie die vorhandenen projektweiten Schlüssel beibehalten möchten, rufen Sie die vorhandenen ssh-keys-Werte ab.

    GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]
    
    ...
    "fingerprint": "[FINGERPRINT]",
    "items": [
     {
      "key": "ssh-keys",
      "value": "[USERNAME_1]:ssh-rsa [EXISTING_KEY_VALUE_1] [USERNAME_1]\n[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]"
     }
    ]
    ...

    Dabei gilt Folgendes:

    • [PROJECT_ID] ist die eindeutige Projekt-ID.
    • [FINGERPRINT] ist die eindeutige ID für diese spezifische Metadatenkonfiguration, die das unbeabsichtigte Überschreiben gleichzeitiger Änderungen verhindert.
    • [USERNAME_1] und [USERNAME_2] sind die Nutzernamen für Ihre vorhandenen Schlüssel.
    • [EXISTING_KEY_VALUE_1] und [EXISTING_KEY_VALUE_2] sind die Werte öffentlicher Schlüssel, die bereits auf das Projekt angewendet wurden.
  2. Sie erstellen eine Liste aller öffentlichen SSH-Schlüssel, die Sie Projektmetadaten hinzufügen oder dort beibehalten möchten. Wenn öffentliche Schlüssel in projektweiten Metadaten vorliegen, werden alle Schlüssel entfernt, die Sie nicht in die Liste aufnehmen.

    In diesem Beispiel enthält die Datei einen neuen [KEY_VALUE], gefolgt von einem der vorhandenen Schlüsselwerte, die Sie im vorherigen Schritt abgerufen haben. Der [EXISTING_KEY_VALUE_1] wird ausgelassen und deshalb im nächsten Schritt aus der Instanz entfernt. Verwenden Sie \n, um die Schlüsselwerte voneinander zu trennen.

    [USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]\n[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
    

    Dabei gilt Folgendes:

    • [USERNAME_1], [USERNAME_2] und [USERNAME_3] sind die Nutzernamen für Ihre Schlüssel.
    • [EXISTING_KEY_VALUE_1] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie entfernen möchten.
    • [EXISTING_KEY_VALUE_2] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie behalten möchten.
    • [NEW_KEY_VALUE] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie einfügen möchten.
  3. Mit der Methode projects.setcommoninstancemetadata legen Sie den projektweiten Wert ssh-keys fest. Geben Sie den fingerprint-Wert an, damit gleichzeitige Änderungen an diesem Metadatenwert nicht überschrieben werden.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/setCommonInstanceMetadata
    
    {
     "items": [
      {
       "key": "ssh-keys",
       "value": "[USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]\n[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]"
      }
     ]
     "fingerprint": "[FINGERPRINT]"
    }
    

    Dabei gilt Folgendes:

    • [PROJECT_ID] ist die eindeutige Projekt-ID.
    • [USERNAME_1], [USERNAME_2] und [USERNAME_3] sind die Nutzernamen für Ihre Schlüssel.
    • [EXISTING_KEY_VALUE_1] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie entfernen möchten.
    • [EXISTING_KEY_VALUE_2] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie behalten möchten.
    • [NEW_KEY_VALUE] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie einfügen möchten.
    • [FINGERPRINT] ist der Fingerabdruck, den Sie zuvor mit der Methode projects.get abgerufen haben.

Testen Sie zum Abschluss Ihre Änderungen. Dazu versuchen Sie, mit Drittanbietertools eine Verbindung zu Ihrer Linux-Instanz herzustellen.

Sollten Probleme auftreten, überprüfen Sie die Metadaten der Instanz, zu der Sie eine Verbindung herstellen möchten. Wenn die Metadaten auf Instanzebene projektweite SSH-Schlüssel sperren oder einen veralteten, auf die Instanz begrenzten sshKeys-Wert aufweisen, ignoriert die Instanz alle projektweiten SSH-Schlüssel. Wenn Sie projektweite Schlüssel auf eine Instanz anwenden möchten, muss die Instanz projektweite öffentliche SSH-Schlüssel zulassen. Außerdem sollten Sie, falls vorhanden, den verworfenen, auf die Instanz begrenzten Wert sshKeys aus den Instanzmetadaten entfernen.

Projektweite öffentliche SSH-Schlüssel von einer Linux-Instanz zulassen oder sperren

Wenn Ihre Instanz projektweite öffentliche SSH-Schlüssel ignorieren und nur Schlüssel auf Instanzebene verwenden soll, können Sie die projektweiten öffentlichen SSH-Schlüssel der Instanz sperren. Dadurch wird der Zugriff auf die Instanz auf Nutzer beschränkt, deren öffentliche SSH-Schlüssel in Metadaten auf Instanzebene gespeichert sind. Wenn Ihre Instanz sowohl projektweite öffentliche SSH-Schlüssel als auch öffentliche SSH-Schlüssel auf Instanzebene verwenden soll, können Sie in den Instanzmetadaten festlegen, dass projektweite SSH-Schlüssel zugelassen werden. Dadurch können alle Nutzer auf die Instanz zugreifen, deren öffentliche SSH-Schlüssel in projektweiten Metadaten oder in Metadaten auf Instanzebene gespeichert sind.

Konsole

Gehen Sie folgendermaßen vor, um projektweite öffentliche SSH-Schlüssel über die GCP Console zuzulassen oder zu sperren:

  1. Öffnen Sie in der Google Cloud Platform Console die Seite "VM-Instanzen".

    Zu den Instanzen

  2. Klicken Sie auf den Namen der Instanz, die Sie ändern möchten.

  3. Klicken Sie in der Symbolleiste auf Bearbeiten.

  4. Navigieren Sie unter SSH-Schlüssel zum Kästchen Projektweite SSH-Schlüssel sperren.

    • Wenn Sie verhindern möchten, dass Nutzer mit projektweiten SSH-Schlüsseln eine Verbindung zu dieser Instanz herstellen können, müssen Sie die Option Projektweite SSH-Schlüssel sperren aktivieren.
    • Wenn Sie zulassen möchten, dass Nutzer mit projektweiten SSH-Schlüsseln eine Verbindung zu dieser Instanz herstellen können, müssen Sie die Option Projektweite SSH-Schlüssel sperren deaktivieren.
  5. Wenn Sie fertig sind, klicken Sie unten auf der Seite auf Speichern.

gcloud

Wenn Sie projektweite öffentliche SSH-Schlüssel von einer Linux-Instanz zulassen oder sperren möchten, fügen Sie Ihrer Instanz den Metadatenwert block-project-ssh-keys hinzu:

  • Setzen Sie den Metadatenwert auf TRUE, um projektweite öffentliche SSH-Schlüssel zu sperren:

    gcloud compute instances add-metadata [INSTANCE_NAME] --metadata block-project-ssh-keys=TRUE
    

    Dabei ist [INSTANCE_NAME] der Name der Instanz, die projektweite öffentliche SSH-Schlüssel sperren soll.

  • Setzen Sie den Metadatenwert auf FALSE, um projektweite öffentliche SSH-Schlüssel zuzulassen:

    gcloud compute instances add-metadata [INSTANCE_NAME] --metadata block-project-ssh-keys=FALSE
    

    Dabei ist [INSTANCE_NAME] der Name der Instanz, die projektweite öffentliche SSH-Schlüssel zulassen soll.

API

So können Sie projektweite öffentliche SSH-Schlüssel von einer Linux-Instanz sperren oder zulassen:

  • Zum Sperren projektweiter öffentlicher SSH-Schlüssel fügen Sie der Instanz den Metadatenwert block-project-ssh-keys hinzu und setzen Sie diesen auf TRUE. Dadurch werden auf dieser Instanz alle projektweiten Schlüssel gesperrt, sodass nur Schlüssel auf Instanzebene funktionieren.

     POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setMetadata
    
     {
      "items": [
       {
        "key": "block-project-ssh-keys",
        "value": TRUE
       }
      ]
      "fingerprint": "[FINGERPRINT]"
     }
    

    Dabei gilt Folgendes:

    • [PROJECT_ID] ist die eindeutige Projekt-ID.
    • [ZONE] ist die Zone, in der sich Ihre Instanz befindet.
    • [INSTANCE_NAME] ist die Instanz, auf der projektweite Schlüssel blockiert werden sollen.
    • [FINGERPRINT] ist die eindeutige ID für diese spezifische Metadatenkonfiguration, die das unbeabsichtigte Überschreiben gleichzeitiger Änderungen verhindert.
  • Fügen Sie der Instanz den Metadatenwert block-project-ssh-keys hinzu und setzen Sie diesen auf FALSE, um projektweite öffentliche SSH-Schlüssel zuzulassen. Jetzt können auf dieser Instanz alle projektweiten Schlüssel (und Schlüssel auf Instanzebene) verwendet werden.

     POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setMetadata
    
     {
     "items": [
      {
       "key": "block-project-ssh-keys",
       "value": FALSE
      }
     ]
     "fingerprint": "[FINGERPRINT]"
     }
    

    Dabei gilt Folgendes:

    • [PROJECT_ID] ist die eindeutige Projekt-ID.
    • [ZONE] ist die Zone, in der sich Ihre Instanz befindet.
    • [INSTANCE_NAME] ist die Instanz, auf der projektweite Schlüssel zugelassen werden sollen.
    • [FINGERPRINT] ist die eindeutige ID für diese spezifische Metadatenkonfiguration, die das unbeabsichtigte Überschreiben gleichzeitiger Änderungen verhindert.

Testen Sie zum Abschluss Ihre Änderungen. Dazu versuchen Sie, mit Drittanbietertools eine Verbindung zu Ihrer Linux-Instanz herzustellen.

Öffentliche SSH-Schlüssel auf Instanzebene hinzufügen oder entfernen

Durch öffentliche SSH-Schlüssel auf Instanzebene erhalten Nutzer Zugriff auf eine spezifische Linux-Instanz. Nutzer mit öffentlichen SSH-Schlüsseln auf Instanzebene können sogar dann auf eine Linux-Instanz zugreifen, wenn diese projektweite öffentliche SSH-Schlüssel sperrt.

Konsole

Gehen Sie folgendermaßen vor, um öffentliche SSH-Schlüssel auf Instanzebene in der GCP Console hinzuzufügen oder zu entfernen:

  1. Öffnen Sie in der Google Cloud Platform Console die Seite "VM-Instanzen".

    Zu den Instanzen

  2. Klicken Sie auf den Namen der Instanz, die Sie ändern möchten.

  3. Klicken Sie in der Symbolleiste auf Bearbeiten.

  4. Klicken Sie unter SSH-Schlüssel auf Anzeigen und bearbeiten. Der Abschnitt wird erweitert, sodass alle öffentlichen SSH-Schlüssel auf Instanzebene angezeigt werden.

  5. Ändern Sie die öffentlichen SSH-Schlüssel auf Instanzebene:

    • Zum Einfügen eines öffentlichen SSH-Schlüssels klicken Sie auf Element hinzufügen. Ein Textfeld wird geöffnet. Kopieren Sie den Inhalt Ihrer öffentlichen SSH-Schlüsseldatei und fügen Sie diesen in das Textfeld ein. Wiederholen Sie diesen Vorgang für jeden öffentlichen SSH-Schlüssel, den Sie einfügen möchten.
    • Zum Entfernen eines öffentlichen SSH-Schlüssels klicken Sie auf die Entfernen-Schaltfläche neben dem Schlüssel:

      Screenshot von öffentlichem PuTTYgen-Schlüssel

      Wiederholen Sie diesen Vorgang für jeden öffentlichen SSH-Schlüssel, den Sie entfernen möchten.

  6. Wenn Sie fertig sind, klicken Sie unten auf der Seite auf Speichern.

gcloud

So fügen Sie öffentliche SSH-Schlüssel auf Instanzebene mit dem gcloud-Tool hinzu oder entfernen diese:

  1. Wenn in Ihrer Instanz bereits öffentliche SSH-Schlüssel auf Instanzebene vorhanden sind, können Sie diese aus den Metadaten abrufen:

    1. Rufen Sie die vorhandenen Metadaten der Instanz ab:

       gcloud compute instances describe [INSTANCE_NAME]
       

      Dabei ist [INSTANCE_NAME] der Name der Instanz, in der Sie öffentliche SSH-Schlüssel einfügen oder entfernen möchten.

    2. Suchen Sie in der Ausgabe nach dem Metadatenwert ssh-keys:

       ...
       metadata:
         fingerprint: QCofVTHlggs=
         items:
         ...
         - key: ssh-keys
           value: |-
             [USERNAME_1]:ssh-rsa [EXISTING_KEY_VALUE_1] [USERNAME_1]
             [USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
       ...
      

      Dabei gilt Folgendes:

      • [USERNAME_1] und [USERNAME_2] sind die Nutzernamen für Ihre vorhandenen Schlüssel.
      • [EXISTING_KEY_VALUE_1] und [EXISTING_KEY_VALUE_2] sind die Werte öffentlicher Schlüssel, die bereits auf die Instanz angewendet wurden.

    3. Kopieren Sie die öffentlichen SSH-Schlüssel, die unter dem Metadatenwert ssh-keys aufgeführt werden.

  2. Erstellen und öffnen Sie eine neue Textdatei auf Ihrer lokalen Workstation.

  3. Erstellen Sie in der Datei eine Liste aller öffentlichen SSH-Schlüssel, die Sie in Metadaten auf Instanzebene hinzufügen oder beibehalten möchten. Wenn öffentliche Schlüssel in Metadaten auf Instanzebene vorliegen, werden alle Schlüssel entfernt, die Sie nicht in die Liste aufnehmen.

    Die folgende Beispielliste sorgt dafür, dass der Schlüssel für [USERNAME_1] entfernt wird, da der SSH-Schlüssel dieses Nutzers ausgelassen wurde. Der SSH-Schlüssel für [USERNAME_2] wird beibehalten und der SSH-Schlüssel für [USERNAME_3] wird hinzugefügt, weil beide Schlüssel in der Liste enthalten sind.

    [USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
    [USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]
    

    Dabei gilt Folgendes:

    • [USERNAME_1], [USERNAME_2] und [USERNAME_3] sind die Nutzernamen der öffentlichen SSH-Schlüssel.
    • [EXISTING_KEY_VALUE_1] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie entfernen möchten.
    • [EXISTING_KEY_VALUE_2] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie behalten möchten.
    • [NEW_KEY_VALUE] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie einfügen möchten.
  4. Speichern und schließen Sie die Datei.

  5. Geben Sie in der Eingabeaufforderung den Befehl compute instances add-metadata ein, um den ssh-key-Wert nur auf Instanzebene einzustellen. Setzen Sie das Flag --metadata-from-file und geben Sie den Pfad zur Liste der öffentlichen Schlüsseldateien an, die Sie erstellt haben.

    gcloud compute instances add-metadata [INSTANCE_NAME] --metadata-from-file ssh-keys=[LIST_PATH]
    

    Dabei gilt Folgendes:

    • [INSTANCE_NAME] ist der Name der Instanz, auf die Sie die öffentliche SSH-Schlüsseldatei anwenden möchten.
    • [LIST_PATH] ist der Pfad zu Ihrer Liste öffentlicher SSH-Schlüssel.

API

Fügen Sie den Metadaten mit der Methode instances.setMetadata einen auf die Instanz begrenzten ssh-keys-Wert hinzu.

  1. Mit der Methode instances.get rufen Sie den Metadatenwert fingerprint ab, der für die Anfrage verwendet werden soll. Wenn Sie die vorhandenen Schlüssel auf Instanzebene beibehalten möchten, müssen Sie die vorhandenen ssh-keys-Werte abrufen.

    GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]
    

    Der Server gibt eine ähnliche Antwort wie diese zurück:

    ...
    "fingerprint": "[FINGERPRINT]",
    "items": [
     {
      "key": "ssh-keys",
      "value": "[USERNAME_1]:ssh-rsa [EXISTING_KEY_VALUE_1] [USERNAME_1]\n[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]"
     }
    ]
    ...
    

    Dabei gilt Folgendes:

    • [PROJECT_ID] ist die eindeutige Projekt-ID.
    • [ZONE] ist die Zone, in der sich Ihre Instanz befindet.
    • [INSTANCE_NAME] ist die Instanz, auf der Sie öffentliche SSH-Schlüssel auf Instanzebene bearbeiten möchten.
    • [FINGERPRINT] ist die eindeutige ID für diese spezifische Metadatenkonfiguration, die das unbeabsichtigte Überschreiben gleichzeitiger Änderungen verhindert.
    • [USERNAME_1] und [USERNAME_2] sind die Nutzernamen für Ihre vorhandenen Schlüssel.
    • [EXISTING_KEY_VALUE_1] und [EXISTING_KEY_VALUE_2] sind die Werte öffentlicher Schlüssel, die bereits auf die Instanz angewendet wurden.
  2. Sie erstellen eine Liste aller öffentlichen SSH-Schlüssel, die Sie in Metadaten auf Instanzebene hinzufügen oder beibehalten möchten. Wenn öffentliche Schlüssel in Metadaten auf Instanzebene vorliegen, werden alle Schlüssel entfernt, die Sie nicht in die Liste aufnehmen.

    In diesem Beispiel enthält die Datei einen neuen [KEY_VALUE], gefolgt von einem der vorhandenen Schlüsselwerte, die Sie im vorherigen Schritt abgerufen haben. Der [EXISTING_KEY_VALUE_1] wird ausgelassen und deshalb im nächsten Schritt aus der Instanz entfernt. Verwenden Sie \n, um die Schlüsselwerte voneinander zu trennen.

    [USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]\n[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]
    

    Dabei gilt Folgendes:

    • [USERNAME_1], [USERNAME_2] und [USERNAME_3] sind die Nutzernamen für Ihre Schlüssel.
    • [EXISTING_KEY_VALUE_1] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie entfernen möchten.
    • [EXISTING_KEY_VALUE_2] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie behalten möchten.
    • [NEW_KEY_VALUE] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie einfügen möchten.
  3. Mit der Methode instances.setMetadata legen Sie den auf die Instanz begrenzten ssh-keys-Wert fest. Geben Sie den fingerprint-Wert an, damit gleichzeitige Änderungen an diesem Metadatenwert nicht überschrieben werden.

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setMetadata
    
    {
     "items": [
      {
       "key": "ssh-keys",
       "value": "[USERNAME_3]:ssh-rsa [NEW_KEY_VALUE] [USERNAME_3]\n[USERNAME_2]:ssh-rsa [EXISTING_KEY_VALUE_2] [USERNAME_2]"
      }
     ]
     "fingerprint": "[FINGERPRINT]"
    }
    

    Dabei gilt Folgendes:

    • [PROJECT_ID] ist die eindeutige Projekt-ID.
    • [ZONE] ist die Zone, in der sich Ihre Instanz befindet.
    • [INSTANCE_NAME] ist die Instanz, auf der Sie öffentliche SSH-Schlüssel auf Instanzebene bearbeiten möchten.
    • [USERNAME_1], [USERNAME_2] und [USERNAME_3] sind die Nutzernamen für Ihre Schlüssel.
    • [EXISTING_KEY_VALUE_1] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie entfernen möchten.
    • [EXISTING_KEY_VALUE_2] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie behalten möchten.
    • [NEW_KEY_VALUE] ist ein öffentlicher Schlüsselwert für einen SSH-Schlüssel, den Sie einfügen möchten.
    • [FINGERPRINT] ist die eindeutige ID für diese spezifische Metadatenkonfiguration, die das unbeabsichtigte Überschreiben gleichzeitiger Änderungen verhindert.

Testen Sie zum Abschluss Ihre Änderungen. Dazu versuchen Sie, mit Drittanbietertools eine Verbindung zu Ihrer Linux-Instanz herzustellen.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation