Mettre à jour les clés SSH pour un utilisateur SFTP

Ce document explique comment mettre à jour les clés Secure Shell (SSH) qu'un utilisateur Cloud FTP peut utiliser pour se connecter à un serveur SFTP.

Avant de commencer

  • Obtenez la clé publique de l'utilisateur à partir de chaque paire de clés SSH qu'il utilisera pour se connecter au serveur. Un utilisateur peut disposer de 10 clés publiques au maximum.

    Si l'utilisateur ne dispose pas d'une paire de clés SSH, procédez comme suit pour en générer une.

    Générer une paire de clés SSH

    De quel format de clé avez-vous besoin ?

    Le format de clé dont vous avez besoin dépend du client que vous utilisez pour vous connecter au serveur SFTP. Pour en savoir plus, consultez Clients SFTP compatibles.

    Format PEM

    1. Pour créer une paire de clés OpenSSH (format PEM), utilisez l' ssh-keygen utilitaire.

      Sur la machine cliente qui se connectera au serveur SFTP, exécutez la commande suivante :

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

      Remplacez KEY_PAIR_NAME par un nom pour la paire de clés, tel que sftp_user_key.

    2. Extrayez la clé publique :

      cat ~/.ssh/KEY_PAIR_NAME.pub

    Format PPK

    1. Pour créer une paire de clés PuTTY (format PPK), utilisez l'outil PuTTYgen.

      Sur la machine cliente qui se connectera au serveur SFTP, exécutez la commande suivante :

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

      Remplacez KEY_PAIR_NAME par un nom pour la paire de clés, tel que sftp_user_key.

    2. Extrayez la clé publique :

      puttygen -L KEY_PAIR_NAME.ppk

Rôles requis

Pour obtenir l'autorisation nécessaire pour mettre à jour les utilisateurs SFTP, demandez à votre administrateur de vous accorder le rôle IAM Administrateur FTP (roles/ftp.admin) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l' ftp.users.update autorisation, qui est requise pour mettre à jour les utilisateurs SFTP.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Mettre à jour les clés SSH d'un utilisateur SFTP

gcloud

Pour mettre à jour les clés SSH d'un utilisateur SFTP, exécutez la gcloud alpha storage ftp users update commande.

Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :

  • CREDENTIAL_NAME : nom unique permettant d'identifier les identifiants de l'utilisateur.
  • SSH_PUBLIC_KEY : corps de la clé publique SSH de l'utilisateur, au format OpenSSH. Exemple : ssh-rsa AAAAB3NzaC1ycRexample....
  • USERNAME : nom d'utilisateur SFTP.
  • LOCATION_ID : l'emplacement du serveur, tel que us-west1.
  • SERVER_ID : ID du serveur.

Pour configurer plusieurs clés publiques pour un utilisateur, fournissez plusieurs identifiants dans le credentials.json fichier.

Enregistrez le code suivant dans un fichier nommé credentials.json :

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

Exécutez la commande suivante :

Linux, macOS ou 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
La mise à jour de l'utilisateur prend quelques secondes.

REST

Pour mettre à jour les clés SSH d'un utilisateur SFTP, utilisez la servers.users.patch méthode. Dans le paramètre de requête updateMask, fournissez le champ userCredentials.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : Google Cloud ID du projet du serveur.
  • LOCATION_ID : l'emplacement du serveur, tel que us-west1.
  • SERVER_ID : ID du serveur.
  • USERNAME : nom d'utilisateur SFTP.
  • CREDENTIAL_NAME : nom unique permettant d'identifier les identifiants de l'utilisateur.
  • SSH_PUBLIC_KEY : corps de la clé publique SSH de l'utilisateur, au format OpenSSH. Exemple : ssh-rsa AAAAB3NzaC1ycRexample....

Pour configurer plusieurs clés publiques pour un utilisateur, fournissez plusieurs identifiants dans la userCredentials liste.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

La réponse identifie une opération de longue durée. La mise à jour de l'utilisateur prend quelques secondes.