SSH-Schlüssel für einen SFTP-Nutzer aktualisieren

In diesem Dokument wird gezeigt, wie Sie die Secure Shell-Schlüssel (SSH) aktualisieren, die ein Cloud FTP-Nutzer verwenden kann, um eine Verbindung zu einem SFTP-Server herzustellen.

Hinweis

  • Rufen Sie den öffentlichen Schlüssel des Nutzers aus jedem SSH-Schlüsselpaar ab, das er für die Verbindung zum Server verwendet. Ein Nutzer kann maximal 10 öffentliche Schlüssel haben.

    Wenn der Nutzer kein SSH-Schlüsselpaar hat, führen Sie die folgenden Schritte aus, um eines zu generieren.

    SSH-Schlüsselpaar generieren

    Welches Schlüsselformat benötigen Sie?

    Das erforderliche Schlüsselformat hängt davon ab, welchen Client Sie verwenden, um eine Verbindung zum SFTP-Server herzustellen. Weitere Informationen finden Sie unter Unterstützte SFTP-Clients.

    PEM-Format

    1. Verwenden Sie das ssh-keygen Dienstprogramm, um ein OpenSSH-Schlüsselpaar (PEM-Format) zu erstellen.

      Führen Sie auf dem Clientcomputer, der eine Verbindung zum SFTP-Server herstellt, den folgenden Befehl aus:

      ssh-keygen -t rsa -b 4096 -f ~/.ssh/KEY_PAIR_NAME

      Ersetzen Sie KEY_PAIR_NAME durch einen Namen für das Schlüsselpaar, z. B. sftp_user_key.

    2. Extrahieren Sie den öffentlichen Schlüssel:

      cat ~/.ssh/KEY_PAIR_NAME.pub

    PPK-Format

    1. Verwenden Sie das PuTTYgen Tool, um ein PuTTY-Schlüsselpaar (PPK-Format) zu erstellen.

      Führen Sie auf dem Clientcomputer, der eine Verbindung zum SFTP-Server herstellt, den folgenden Befehl aus:

      puttygen -t rsa -b 4096 -o KEY_PAIR_NAME.ppk

      Ersetzen Sie KEY_PAIR_NAME durch einen Namen für das Schlüsselpaar, z. B. sftp_user_key.

    2. Extrahieren Sie den öffentlichen Schlüssel:

      puttygen -L KEY_PAIR_NAME.ppk

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle FTP-Administrator (roles/ftp.admin) für Ihr Projekt zuzuweisen, um die Berechtigung zum Aktualisieren von SFTP-Nutzern zu erhalten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die ftp.users.update Berechtigung, die zum Aktualisieren von SFTP-Nutzern erforderlich ist.

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

SSH-Schlüssel eines SFTP-Nutzers aktualisieren

gcloud

Führen Sie den gcloud alpha storage ftp users update Befehl aus, um die SSH-Schlüssel eines SFTP-Nutzers zu aktualisieren.

Nehmen Sie die folgenden Ersetzungen vor, bevor Sie die Befehlsdaten unten verwenden:

  • CREDENTIAL_NAME: Ein eindeutiger Name zur Identifizierung der Nutzeranmeldedaten.
  • SSH_PUBLIC_KEY: Der Text des öffentlichen SSH-Schlüssels des Nutzers im OpenSSH-Format. Beispiel: ssh-rsa AAAAB3NzaC1ycRexample....
  • USERNAME: Der Nutzername des SFTP-Nutzers.
  • LOCATION_ID: Der Standort des Servers, z. B. us-west1.
  • SERVER_ID: Die Server-ID.

Wenn Sie mehrere öffentliche Schlüssel für einen Nutzer konfigurieren möchten, geben Sie in der credentials.json Datei mehrere Anmeldedaten an.

Speichern Sie den folgenden Inhalt in einer Datei mit dem Namen credentials.json:

[
  {
    "credentialName": "CREDENTIAL_NAME",
    "credentialType": "PUBLIC_KEY",
    "sshPublicKeyBody": "SSH_PUBLIC_KEY"
  }
]

Führen Sie den folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID \
    --server=SERVER_ID --user-credentials-from-file=credentials.json

Windows (PowerShell)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID `
    --server=SERVER_ID --user-credentials-from-file=credentials.json

Windows (cmd.exe)

gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ^
    --server=SERVER_ID --user-credentials-from-file=credentials.json
Es dauert einige Sekunden, bis der Nutzer aktualisiert wird.

REST

Verwenden Sie die servers.users.patch Methode, um die SSH-Schlüssel eines SFTP-Nutzers zu aktualisieren. Geben Sie im Abfrageparameter updateMask das Feld userCredentials an.

Nehmen Sie die folgenden Ersetzungen vor, bevor Sie die Anfragedaten verwenden:

  • PROJECT_ID: die Google Cloud Projekt-ID des Servers.
  • LOCATION_ID: Der Standort des Servers, z. B. us-west1.
  • SERVER_ID: Die Server-ID.
  • USERNAME: Der Nutzername des SFTP-Nutzers.
  • CREDENTIAL_NAME: Ein eindeutiger Name zur Identifizierung der Nutzeranmeldedaten.
  • SSH_PUBLIC_KEY: Der Text des öffentlichen SSH-Schlüssels des Nutzers im OpenSSH-Format. Beispiel: ssh-rsa AAAAB3NzaC1ycRexample....

Wenn Sie mehrere öffentliche Schlüssel für einen Nutzer konfigurieren möchten, geben Sie in der userCredentials Liste mehrere Anmeldedaten an.

HTTP-Methode und URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=userCredentials

JSON-Text der Anfrage:

{
  "userCredentials": [
    {
      "credentialName": "CREDENTIAL_NAME",
      "credentialType": "PUBLIC_KEY",
      "sshPublicKeyBody": "SSH_PUBLIC_KEY"
    }
  ]
}

Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:

Die Antwort identifiziert einen Vorgang mit langer Ausführungszeit. Es dauert einige Sekunden, bis der Nutzer aktualisiert wird.