Ce document explique comment empêcher les utilisateurs d'accéder aux instances de machines virtuelles (VM) en supprimant et en bloquant les clés SSH des VM.
Avant de commencer
- 
  
  Si ce n'est pas déjà fait, configurez l'authentification.
  L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . 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: ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante : gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée. 
- Set a default region and zone.
 RESTPour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante : gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à 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 Google Cloud . Supprimer des clés SSHVous pouvez supprimer les clés SSH des VM qui utilisent OS Login et des VM qui utilisent des clés SSH basées sur des métadonnées.Supprimer les clés SSH des VM qui utilisent OS LoginLes VM qui utilisent OS Login acceptent les clés SSH associées à votre compte Google. Vous pouvez supprimer une clé SSH publique de votre compte utilisateur à l'aide de Google Cloud CLI ou de l'API OS Login. Si vous êtes administrateur de votre organisation, vous pouvez supprimer des clés SSH des comptes utilisateur en utilisant l'API Directory. Compute Engine supprime automatiquement les clés expirées de votre compte Google. gcloudPour supprimer une clé SSH publique de votre compte, procédez comme suit : - Si vous ne savez pas quelle clé vous souhaitez supprimer, exécutez la commande - gcloud compute os-login describe-profilepour afficher toutes les clés associées à votre compte :- gcloud compute os-login describe-profile 
- Copiez la valeur - fingerprintde la clé que vous souhaitez supprimer.
- Supprimez la clé de votre compte à l'aide de la commande - gcloud compute os-login ssh-keys remove:- gcloud compute os-login ssh-keys remove --key=KEY - Remplacez - KEYpar la clé SSH publique à supprimer ou l'empreinte d'OS Login pour la clé que vous souhaitez supprimer.
 RESTPour supprimer une clé SSH publique de votre compte, procédez comme suit : - Si vous ne savez pas quelle clé vous souhaitez supprimer, utilisez la méthode - users.getLoginProfilepour afficher toutes les clés associées à votre compte :- GET https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/loginProfile - Remplacez - ACCOUNT_EMAILpar l'adresse e-mail associée à votre compte.
- Copiez la valeur - fingerprintde la clé que vous souhaitez supprimer.
- Supprimez la clé de votre compte à l'aide de la méthode - users.sshPublicKeys.delete:- DELETE https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/sshPublicKeys/FINGERPRINT - Remplacez les éléments suivants : - ACCOUNT_EMAIL: adresse e-mail associée à votre compte.
- FINGERPRINT: empreinte SHA-256 de la clé à supprimer.
 
 Supprimer les clés SSH des VM qui utilisent des clés basées sur les métadonnéesVous pouvez supprimer une clé SSH publique des métadonnées de projet ou d'instance à l'aide de la consoleGoogle Cloud , de gcloud CLI ou de l'API Compute Engine. Une fois que vous avez supprimé la dernière clé des métadonnées pour un utilisateur particulier, ou que la dernière clé des métadonnées d'un utilisateur particulier expire, Compute Engine supprime le fichier Attention : Si vous gérez les clés SSH dans les métadonnées, vous risquez de perturber la connexion aux VM pour les membres de votre projet. De plus, vous risquez d'accorder aux utilisateurs un accès non intentionnel aux VM, y compris aux utilisateurs extérieurs à votre projet. Pour en savoir plus, consultez la section Risques liés à la gestion manuelle des clés.~/.ssh/authorized_keysde l'utilisateur sur la VM.Supprimer une clé publique des métadonnées du projetSupprimez une clé SSH publique des métadonnées du projet pour supprimer l'accès à toutes les VM d'un projet. Lorsque vous supprimez une clé des métadonnées à l'aide de gcloud CLI et de l'API Compute Engine, vous devez récupérer la liste des clés existantes, modifier la liste des clés pour supprimer les clés indésirables et écraser l'ancienne clé avec la liste des clés à conserver, comme expliqué dans la section suivante. ConsolePour supprimer une clé SSH publique des métadonnées de projet à l'aide de la consoleGoogle Cloud , procédez comme suit : - Dans la console Google Cloud , accédez à la page Métadonnées. - Accéder à la page "Métadonnées" 
- Cliquez sur l'onglet Clés SSH. 
- Cliquez sur Modifier en haut de la page. 
- Accédez à la clé SSH que vous souhaitez supprimer, puis cliquez sur le bouton de suppression situé à côté de la clé SSH. - Répétez cette étape pour chaque clé SSH que vous souhaitez supprimer. 
- Cliquez sur Enregistrer. 
 gcloudPour supprimer une clé SSH publique des métadonnées de projet à l'aide de gcloud CLI, procédez comme suit : - Exécutez la commande - gcloud compute project-info describepour obtenir les métadonnées du projet :- gcloud compute project-info describe - Le résultat ressemble à ce qui suit : - ... metadata: ... - - key: ssh-keysvalue: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...
- Copiez la valeur de métadonnées - ssh-keys.
- Créez et ouvrez un fichier texte sur votre poste de travail. 
- Dans le fichier, collez la liste des clés SSH que vous venez de copier, puis effacez celles que vous souhaitez supprimer des métadonnées du projet. 
- Enregistrez et fermez le fichier. 
- Exécutez la commande - gcloud compute project-info add-metadatapour 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_FILEpar 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.
 
 RESTPour supprimer une clé SSH publique des métadonnées de projet à l'aide de l'API Compute Engine, procédez comme suit : - Utilisez la méthode - projects.getpour obtenir les valeurs- fingerprintet- ssh-keysà partir des métadonnées.- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID - Remplacez - PROJECT_IDpar 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"}" } ] ...
- Copiez la liste des valeurs de clés SSH et effacez les clés que vous souhaitez supprimer. 
- Utilisez la commande - projects.setCommonInstanceMetadatapour supprimer les clés SSH.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS" } ] "fingerprint": "FINGERPRINT" }- Remplacez les éléments suivants : - PROJECT_ID: ID de votre projet.
- EXISTING_SSH_KEYS: liste des clés SSH que vous souhaitez conserver.
- FINGERPRINT: valeur de- fingerprintà partir de la réponse de la requête- projects.get.
 
 Supprimer une clé SSH publique des métadonnées d'instanceSupprimez une clé SSH publique des métadonnées d'instance pour supprimer l'accès à une seule VM. Lorsque vous supprimez une clé des métadonnées à l'aide de gcloud CLI et de l'API Compute Engine, vous devez récupérer la liste des clés existantes, modifier la liste des clés pour supprimer les clés indésirables et écraser l'ancienne clé avec la liste des clés à conserver, comme expliqué dans la section suivante. ConsolePour supprimer une clé SSH publique des métadonnées d'instance à l'aide de la consoleGoogle Cloud , procédez comme suit : - Dans la console Google Cloud , accédez à la page Instances de VM. 
- Cliquez sur le nom de la VM pour laquelle vous souhaitez supprimer une clé. 
- Cliquez sur Modifier. 
- Dans la section Clés SSH, cliquez sur Afficher et modifier. La section s'étend pour afficher toutes les clés SSH publiques au niveau de l'instance. 
- Cliquez sur le bouton de suppression à côté de la clé SSH que vous souhaitez supprimer. - Répétez cette étape pour chaque clé SSH que vous souhaitez supprimer. 
- Cliquez sur Enregistrer. 
 gcloudPour supprimer une clé SSH publique des métadonnées d'instance à l'aide de gcloud CLI, procédez comme suit : - Exécutez la commande - gcloud compute instances describepour 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-keysvalue: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8 google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...
- Copiez la valeur de métadonnées - ssh-keys.
- Créez et ouvrez un fichier texte sur votre poste de travail local. 
- Dans le fichier, collez la liste des clés SSH que vous venez de copier, puis effacez celles que vous souhaitez supprimer. 
- Enregistrez et fermez le fichier. 
- Exécutez la commande - gcloud compute project-info add-metadatapour définir la valeur- ssh-keysà l'échelle du projet :- 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: chemin d'accès au fichier contenant la liste de toutes les clés SSH du projet.
 
 RESTPour supprimer une clé SSH publique des métadonnées d'instance à l'aide de l'API Compute Engine, procédez comme suit : - Utilisez la méthode - instances.getpour obtenir les valeurs- fingerprintet- ssh-keysà partir des métadonnées.- 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"}" } ] ...
- Copiez la liste des valeurs de clés SSH et effacez les clés que vous souhaitez supprimer. 
- Utilisez la commande - instances.setMetadatapour supprimer les clés SSH.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS } ] "fingerprint": "FINGERPRINT" }- Remplacez les éléments suivants : - PROJECT_ID: ID de votre projet.
- EXISTING_SSH_KEYS: valeur de la clé- ssh-keysde la réponse de la requête- projects.get
- FINGERPRINT: valeur de- fingerprintà partir de la réponse de la requête- instances.get
 
 Bloquer les clés SSH de projet à partir de VM qui utilisent des clés SSH basées sur les métadonnéesVous pouvez empêcher les VM d'accepter les clés SSH stockées dans les métadonnées du projet en bloquant les clés SSH du projet provenant des VM. Vous pouvez bloquer les clés SSH de projet à partir de VM lors de la création d'une VM ou après la création d'une VM. Bloquer les clés SSH de projet lors de la création d'une VMVous pouvez bloquer les clés SSH de projet à partir des VM lors de la création de la VM à l'aide de la consoleGoogle Cloud , de gcloud CLI ou de l'API Compute Engine. ConsolePour créer une instance et l'empêcher d'accepter les clés SSH stockées dans les métadonnées du projet à l'aide de la console Google Cloud , procédez comme suit : - Dans la console Google Cloud , accédez à la page Créer une instance. 
- Pour bloquer les clés SSH du projet : - Dans le menu de navigation, cliquez sur Sécurité. 
- Développez la section Gérer l'accès. 
- Pour désactiver OS Login, décochez la case Contrôler l'accès aux VM à l'aide des autorisations IAM. 
- Cochez la case Bloquer les clés SSH à l'échelle du projet. 
 
- Facultatif : spécifiez d'autres options de configuration. Pour en savoir plus, consultez Options de configuration lors de la création d'une instance. 
- Pour créer et démarrer l'instance, cliquez sur Créer. 
 gcloudPour créer une VM et l'empêcher d'accepter les clés SSH stockées dans les métadonnées du projet à l'aide de gcloud CLI, utilisez la commande gcloud compute instances create:gcloud compute instances create VM_NAME \ --metadata block-project-ssh-keys=TRUERemplacez VM_NAMEpar le nom de la nouvelle VM.RESTPour créer une VM et l'empêcher d'accepter les clés SSH stockées dans les métadonnées du projet à l'aide de Compute Engine, envoyez une requête POSTà la méthodeinstances.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": "block-project-ssh-keys", "value": TRUE } ] } ...Bloquer les clés SSH de projet après de la création d'une VMVous pouvez bloquer les clés SSH de projet à partir des VM après la création de la VM à l'aide de la consoleGoogle Cloud , de gcloud CLI ou de l'API Compute Engine. ConsolePour empêcher les VM d'accepter les connexions à partir de clés SSH stockées dans les métadonnées du projet à l'aide de la console Google Cloud , procédez comme suit : - Dans la console Google Cloud , accédez à la page Instances de VM. 
- Cliquez sur le nom de la VM pour laquelle vous souhaitez bloquer les clés SSH de projet. 
- Cliquez sur Modifier. 
- Sous Clés SSH, cochez la case Bloquer les clés SSH à l'échelle du projet. 
- Lorsque vous avez terminé de modifier le paramètre de connexion pour les clés SSH, cliquez sur Enregistrer. 
 gcloudPour empêcher les VM d'accepter les connexions à partir de clés SSH stockées dans les métadonnées du projet à l'aide de gcloud CLI, procédez comme suit : Exécutez la commande gcloud compute instances add-metadatasuivante :gcloud compute instances add-metadata VM_NAME --metadata block-project-ssh-keys=TRUE Remplacez VM_NAMEpar le nom de la VM pour laquelle vous souhaitez bloquer les clés SSH publiques au niveau du projet.RESTPour empêcher les VM d'accepter les connexions à partir de clés SSH stockées dans les métadonnées du projet à l'aide de l'API Compute Engine, procédez comme suit : - Utilisez la méthode - instances.getpour obtenir la valeur- fingerprintà partir des métadonnées.- 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=" ... 
- Utilisez la méthode - instances.setMetadatapour définir- block-project-ssh-keyssur- TRUE:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "block-project-ssh-keys", "value": TRUE } ] "fingerprint": "FINGERPRINT" }- Remplacez les éléments suivants : - PROJECT_IDest l'ID de votre projet.
- ZONEest la zone où se situe votre instance.
- INSTANCE_NAMEest l'instance sur laquelle vous souhaitez bloquer les clés à l'échelle du projet.
- FINGERPRINT: valeur de- fingerprintà partir de la réponse de la requête- instances.get.
 
 Étape suivante- Découvrez les avantages à utiliser OS Login pour la gestion des accès.
- Connectez-vous à des VM à l'aide des outils Google pour ne pas avoir à gérer vos propres clés SSH.
 Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées. Dernière mise à jour le 2025/10/19 (UTC). -