Ajouter des clés SSH aux VM

Ce document explique comment ajouter des clés SSH aux instances de machines virtuelles (VM).

Avant de commencer

  • Si ce n'est pas déjà fait, créez une paire de clés SSH.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Trusted Cloud by S3NS . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez Google Cloud CLI en exécutant la commande suivante :

      gcloud init
    2. Set a default region and zone.

    Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez les Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

      Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.

      Create local authentication credentials for your user account:

      gcloud auth application-default login

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Pour en savoir plus, consultez Set up authentication for a local development environment.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Trusted Cloud .

Ajouter des clés SSH aux VM qui utilisent des clés SSH basées sur des métadonnées

Les VM stockent les clés SSH dans les métadonnées de projet et d'instance Compute Engine. Si OS Login est activé pour une VM, l'agent invité de la VM ignore les clés stockées dans les métadonnées.

Vous pouvez utiliser des clés SSH stockées dans les métadonnées du projet pour accéder à toutes les VM d'un projet. Vous pouvez utiliser des clés SSH stockées dans les métadonnées d'instance pour accéder à des VM individuelles.

Compute Engine ne supprime pas automatiquement les clés SSH expirées des métadonnées au moment de l'expiration, mais ces clés ne peuvent pas être utilisées pour établir de nouvelles connexions aux VM. Si vous souhaitez supprimer des clés expirées des métadonnées, consultez la section Supprimer les clés SSH des VM qui utilisent des clés basées sur les métadonnées.

Vous pouvez ajouter une clé SSH publique aux métadonnées de projet ou d'instance de VM à l'aide de la console Trusted Cloud , de gcloud CLI ou de REST. Vous ne pouvez pas définir de valeurs de métadonnées zonales pour les clés SSH.

Ajouter des clés SSH aux métadonnées du projet

Vous pouvez ajouter une clé SSH publique aux métadonnées de projet pour accéder à toutes les VM d'un projet, à l'exception des VM qui bloquent les clés SSH à l'échelle du projet. Pour en savoir plus sur le blocage des clés SSH à l'échelle du projet, consultez la section Bloquer des clés SSH pour les VM qui utilisent des clés SSH basées sur les métadonnées.

Console

Pour ajouter une clé SSH publique aux métadonnées du projet à l'aide de la consoleTrusted Cloud , procédez comme suit :

  1. Dans la console Trusted Cloud , accédez à la page Métadonnées.

    Accéder à la page "Métadonnées"

  2. Cliquez sur l'onglet Clés SSH.

  3. Cliquez sur Modifier.

  4. Cliquez sur Ajouter un élément.

  5. Dans le champ Clé SSH qui s'ouvre, ajoutez votre clé SSH publique. La clé doit être dans l'un des formats suivants :

    • Format d'une clé sans délai d'expiration :

      KEY_VALUE USERNAME
    • Format d'une clé avec un délai d'expiration :

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

    Remplacez les éléments suivants :

    • KEY_VALUE : valeur de la clé SSH publique
    • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

      Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter à des VM en tant qu'utilisateur racine.

      Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

    • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.
  6. Cliquez sur Enregistrer.

gcloud

In the Trusted Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Trusted 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.

  1. Si les métadonnées de projet contiennent des clés SSH, vous devez les rajouter chaque fois que vous ajoutez une clé SSH à l'aide de gcloud CLI. Si vous n'ajoutez pas à nouveau vos clés existantes, l'ajout d'une nouvelle clé efface les clés existantes.

    Pour ajouter une clé SSH publique aux métadonnées du projet à l'aide de gcloud CLI, procédez comme suit :

    1. Si votre projet possède déjà des clés SSH publiques à l'échelle du projet, récupérez-les à partir des métadonnées et ajoutez-les dans un nouveau fichier :

      1. Exécutez la commande gcloud compute project-info describe pour obtenir les clés SSH du projet :

        gcloud compute project-info describe \
         --format="value(commonInstanceMetadata[items][ssh-keys])"
        

        Le résultat ressemble à ce qui suit :

        username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
        
      2. Copiez la valeur de métadonnées ssh-keys.

      3. Créez et ouvrez un fichier texte sur votre poste de travail local.

      4. Dans le fichier, collez la liste de clés que vous venez de copier.

      5. Ajoutez votre nouvelle clé à la fin de la liste, dans l'un des formats suivants :

        • Format d'une clé sans délai d'expiration :

          USERNAME:KEY_VALUE
        • Format d'une clé avec un délai d'expiration :

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

        Remplacez les éléments suivants :

        • KEY_VALUE : valeur de la clé SSH publique
        • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

          Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter aux instances en tant qu'utilisateur racine.

          Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

        • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.
      6. Enregistrez et fermez le fichier.

    2. Exécutez la commande gcloud compute project-info add-metadata pour définir la valeur ssh-keys à l'échelle du projet :

      gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
      

      Remplacez KEY_FILE par l'un des éléments suivants :

      • Chemin d'accès au fichier que vous avez créé à l'étape précédente, si le projet comportait des clés SSH existantes.
      • Chemin d'accès à votre nouveau fichier de clé SSH publique, si le projet ne disposait pas de clés SSH existantes.

Terraform

Pour ajouter une clé SSH publique aux métadonnées de votre projet, utilisez la ressource google_compute_project_metadata.

resource "google_compute_project_metadata" "default" {
  metadata = {
    ssh-keys = <<EOF
      dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
      test:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT test
    EOF
  }
}

REST

S'il existe déjà des clés SSH dans les métadonnées du projet, vous devez les ajouter à nouveau aux métadonnées de projet chaque fois que vous ajoutez une nouvelle clé SSH à l'aide de l'API Compute Engine. Si vous n'ajoutez pas à nouveau vos clés existantes, l'ajout d'une nouvelle clé efface les clés existantes.

Pour ajouter une clé SSH publique aux métadonnées du projet à l'aide de l'API Compute Engine, procédez comme suit :

  1. Récupérez les valeurs fingerprint et ssh-keys des métadonnées à l'aide de la méthode projects.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
    

    Remplacez PROJECT_ID par l'ID du projet.

    La réponse est semblable à ce qui suit :

    ...
    "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"}"
    }
    ]
    ...
    
  2. Ajoutez la nouvelle valeur ssh-keys à l'aide de la méthode projects.setCommonInstanceMetadata.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata
    
    {
    "items": [
     {
      "key": "ssh-keys",
      "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY"
     }
    ]
    "fingerprint": "FINGERPRINT"
    }
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID de votre projet.
    • EXISTING_SSH_KEYS : valeur de la clé ssh-keys de la réponse de la requête projects.get
    • FINGERPRINT : valeur de fingerprint à partir de la réponse de la requête projects.get
    • NEW_SSH_KEY : nouvelle clé SSH, dans l'un des formats suivants :

      • Format d'une clé sans délai d'expiration :

        USERNAME:KEY_VALUE
      • Format d'une clé avec un délai d'expiration :

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

      Remplacez les éléments suivants :

      • KEY_VALUE : valeur de la clé SSH publique
      • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

        Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter aux instances en tant qu'utilisateur racine.

        Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

      • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.

Ajouter des clés SSH aux métadonnées d'une instance

Vous pouvez ajouter une clé SSH publique aux métadonnées d'instance lorsque vous créez une VM ou après la création d'une VM.

Ajouter des clés SSH aux métadonnées d'une instance lors de la création d'une VM

Vous pouvez ajouter des clés SSH aux métadonnées d'une instance lors de la création de la VM à l'aide de la consoleTrusted Cloud , de gcloud CLI ou de l'API Compute Engine.

Console

Pour créer une instance et ajouter simultanément une clé SSH publique aux métadonnées d'instance à l'aide de la console Trusted Cloud , procédez comme suit :

  1. Dans la console Trusted Cloud , accédez à la page Créer une instance.

    Accéder à la page Créer une instance

  2. Pour ajouter une clé SSH publique aux métadonnées d'instance, procédez comme suit :

    1. Dans le menu de navigation, cliquez sur Sécurité.

    2. Développez la section Gérer l'accès.

    3. Pour désactiver OS Login, décochez la case Contrôler l'accès aux VM à l'aide des autorisations IAM.

    4. Si vous souhaitez autoriser les clés SSH publiques dans les métadonnées du projet à accéder à l'instance, décochez la case Bloquer les clés SSH à l'échelle du projet.

    5. Dans la section Ajouter des clés SSH générées manuellement, cliquez sur Ajouter un élément.

    6. Ajoutez votre clé publique dans la zone de texte. La compression doit être dans l'un des formats suivants :

      • Format d'une clé sans délai d'expiration :

        KEY_VALUE USERNAME
      • Format d'une clé avec un délai d'expiration :

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

      Remplacez les éléments suivants :

      • KEY_VALUE : valeur de la clé SSH publique
      • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

        Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter à des VM en tant qu'utilisateur racine.

        Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

      • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.
  3. Facultatif : spécifiez d'autres options de configuration. Pour en savoir plus, consultez Options de configuration lors de la création d'une instance.

  4. Pour créer et démarrer l'instance, cliquez sur Créer.

gcloud

  1. In the Trusted Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Trusted 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.

  2. Pour créer une VM et ajouter simultanément une clé SSH publique aux métadonnées d'instance à l'aide de gcloud CLI, utilisez la commande gcloud compute instances create :

    gcloud compute instances create VM_NAME \
       --metadata=ssh-keys=PUBLIC_KEY
    

    Remplacez les éléments suivants :

    • VM_NAME : nom de la nouvelle VM
    • PUBLIC_KEY : clé SSH publique, dans l'un des formats suivants :

      • Format d'une clé sans délai d'expiration :

        USERNAME:KEY_VALUE
      • Format d'une clé avec un délai d'expiration :

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

      Remplacez les éléments suivants :

      • KEY_VALUE : valeur de la clé SSH publique
      • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

        Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter aux instances en tant qu'utilisateur racine.

        Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

      • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.

    Vous pouvez ajouter plusieurs clés SSH à l'aide de l'option --metadata-from-file=ssh-keys=FILE_PATH. Dans le fichier, ajoutez une liste de noms d'utilisateur et de clés SSH publiques dans l'un des formats précédents.

  3. Terraform

    Pour ajouter une clé SSH publique aux métadonnées de votre instance, utilisez la ressource google_compute_instance.

    resource "google_compute_instance" "default" {
      name         = "my-vm"
      machine_type = "n1-standard-1"
      zone         = "us-central1-a"
    
      boot_disk {
        initialize_params {
          image = "ubuntu-1404-trusty-v20160627"
        }
      }
    
      # Local SSD disk
      scratch_disk {
        interface = "SCSI"
      }
    
      network_interface {
        network = "default"
        access_config {}
      }
      metadata = {
        "ssh-keys" = <<EOT
          dev:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT dev
          test:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILg6UtHDNyMNAh0GjaytsJdrUxjtLy3APXqZfNZhvCeT test
         EOT
      }
    }

    REST

    Pour créer une VM et ajouter simultanément une clé SSH publique aux métadonnées d'instance à l'aide de Compute Engine, envoyez une requête POST à la méthode instances.insert :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet
    • ZONE : zone de la VM

    Dans le corps de la requête, indiquez les noms d'utilisateur et les clés SSH publiques dans la propriété items :

    ...
    {
     "items": [
        {
         "key": "ssh-keys",
         "value": "PUBLIC_KEY"
        }
       ]
    }
    ...
    

    Remplacez PUBLIC_KEY par votre clé publique, dans l'un des formats suivants :

    • Format d'une clé sans délai d'expiration :

      USERNAME:KEY_VALUE
    • Format d'une clé avec un délai d'expiration :

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

    Remplacez les éléments suivants :

    • KEY_VALUE : valeur de la clé SSH publique
    • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

      Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter aux instances en tant qu'utilisateur racine.

      Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

    • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.

    Vous pouvez ajouter plusieurs clés SSH en ajoutant \n entre les clés.

Ajouter des clés SSH aux métadonnées d'une instance après la création d'une VM

Vous pouvez ajouter des clés SSH aux métadonnées d'instance après la création de la VM à l'aide de la consoleTrusted Cloud , de gcloud CLI ou de l'API Compute Engine.

Console

Pour ajouter une clé SSH publique aux métadonnées d'instance à l'aide de la consoleTrusted Cloud , procédez comme suit :

  1. Dans la console Trusted Cloud , accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur le nom de la VM pour laquelle vous souhaitez ajouter une clé SSH.

  3. Cliquez sur Modifier.

  4. Sous Clés SSH, cliquez sur Ajouter un élément.

  5. Ajoutez votre clé publique dans la zone de texte. La compression doit être dans l'un des formats suivants :

    • Format d'une clé sans délai d'expiration :

      KEY_VALUE USERNAME
    • Format d'une clé avec un délai d'expiration :

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

    Remplacez les éléments suivants :

    • KEY_VALUE : valeur de la clé SSH publique
    • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

      Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter à des VM en tant qu'utilisateur racine.

      Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

    • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.
  6. Cliquez sur Enregistrer.

gcloud

  1. In the Trusted Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Trusted 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.

  2. Si les métadonnées d'instance contiennent des clés SSH, vous devez les rajouter chaque fois que vous ajoutez une clé SSH à l'aide de gcloud CLI. Si vous n'ajoutez pas à nouveau vos clés existantes, l'ajout d'une nouvelle clé efface les clés existantes.

    Pour ajouter une clé SSH publique aux métadonnées d'instance à l'aide de gcloud CLI, procédez comme suit :

    1. Si votre VM possède déjà des clés SSH publiques au niveau de l'instance, récupérez-les à partir des métadonnées et ajoutez-les à un nouveau fichier :

      1. Exécutez la commande gcloud compute instances describe pour obtenir les métadonnées de la VM :

        gcloud compute instances describe VM_NAME
        

        Remplacez VM_NAME par le nom de la VM pour laquelle vous devez ajouter ou supprimer des clés SSH publiques.

        Le résultat ressemble à ce qui suit :

        ...
        metadata:
        ...
        - key: ssh-keys
         value: |-
           cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...
           baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}
        ...
        
      2. Copiez la valeur de métadonnées ssh-keys.

      3. Créez et ouvrez un fichier texte sur votre poste de travail local.

      4. Dans le fichier, collez la liste de clés que vous venez de copier.

      5. Ajoutez votre nouvelle clé à la fin de la liste, dans l'un des formats suivants :

      • Format d'une clé sans délai d'expiration :

        USERNAME:KEY_VALUE
      • Format d'une clé avec un délai d'expiration :

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

      Remplacez les éléments suivants :

      • KEY_VALUE : valeur de la clé SSH publique
      • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

        Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter aux instances en tant qu'utilisateur racine.

        Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

      • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.
      1. Enregistrez et fermez le fichier.
    2. Exécutez la commande gcloud compute instances add-metadata pour définir la valeur ssh-keys :

      gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
      

      Remplacez les éléments suivants :

      • VM_NAME : VM pour laquelle vous souhaitez supprimer la clé SSH.
      • KEY_FILE par l'un des éléments suivants :
      • Chemin d'accès au fichier que vous avez créé à l'étape précédente, si la VM disposait de clés SSH.
      • Chemin d'accès à votre nouveau fichier de clé SSH publique, si le projet ne disposait pas de clés SSH existantes.
  3. REST

    Si les métadonnées d'instance contiennent des clés SSH, vous devez les rajouter chaque fois que vous ajoutez une clé SSH à l'aide de l'API Compute Engine. Si vous n'ajoutez pas à nouveau vos clés existantes, l'ajout d'une nouvelle clé efface les clés existantes.

    Pour ajouter une clé SSH publique aux métadonnées d'instance à l'aide de l'API Compute Engine, procédez comme suit :

    1. Récupérez les valeurs fingerprint et ssh-keys des métadonnées à l'aide de la méthode instances.get.

      GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
      

      Remplacez les éléments suivants :

      • PROJECT_ID : ID de votre projet.
      • ZONE : zone de la VM pour laquelle vous ajoutez une clé SSH.
      • VM_NAME : VM pour laquelle vous ajoutez une clé SSH.

      La réponse est semblable à ce qui suit :

      ...
      "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"}"
      }
      ]
      ...
      
    2. Ajoutez la nouvelle valeur ssh-keys à l'aide de la méthode instances.setMetadata.

      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"
      }
      

      Remplacez les éléments suivants :

      • PROJECT_ID : ID de votre projet.
      • EXISTING_SSH_KEYS : valeur de la clé ssh-keys de la réponse de la requête instances.get
      • FINGERPRINT : fingerprint à partir de la réponse de la requête projects.get
      • NEW_SSH_KEY : nouvelle clé SSH, dans l'un des formats suivants :

        • Format d'une clé sans délai d'expiration :

          USERNAME:KEY_VALUE
        • Format d'une clé avec un délai d'expiration :

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

        Remplacez les éléments suivants :

        • KEY_VALUE : valeur de la clé SSH publique
        • USERNAME : votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.

          Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter aux instances en tant qu'utilisateur racine.

          Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.

        • EXPIRE_TIME : heure d'expiration de la clé, au format ISO 8601. Par exemple : 2021-12-04T20:12:00+0000.

Étape suivante