Ce document explique comment ajouter des clés SSH aux instances de machines virtuelles (VM) qui utilisent OS Login et aux VM qui utilisent des clés SSH basées sur les métadonnées. Si vous ou votre administrateur d'organisation n'avez pas activé OS Login, vos VM utilisent des clés SSH basées sur les métadonnées.
Avant de commencer
- Pour en savoir plus sur la gestion des accès à vos VM Compute Engine, consultez la page Choisir une méthode d'accès.
-
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 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 comme suit :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Définissez une région et une zone par défaut.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Ajouter des clés aux VM qui utilisent OS Login
Les VM qui utilisent OS Login acceptent les clés SSH associées à votre compte Google. Vous pouvez associer une clé SSH publique à votre compte Google en utilisant gcloud CLI ou l'API OS Login. Si vous êtes administrateur de votre organisation, vous pouvez ajouter des clés SSH aux comptes utilisateur en utilisant l'API Directory.
Lorsque vous ajoutez des clés SSH à votre compte Google, Compute Engine génère un nom d'utilisateur pour vous en combinant le nom d'utilisateur et le domaine de l'adresse e-mail associée à votre compte Google. Par exemple, si votre adresse e-mail est cloudysanfrancisco@gmail.com
, votre nom d'utilisateur est cloudysanfrancisco_gmail_com
.
Si vous ajoutez une clé SSH dans un projet situé en dehors de votre organisation, votre nom d'utilisateur porte le préfixe ext_
(par exemple, ext_cloudysanfrancisco_gmail_com
). L'administrateur de votre organisation peut personnaliser votre nom d'utilisateur en utilisant l'API Directory. Si vous avez déjà configuré un nom d'utilisateur, Compute Engine l'utilise lorsque vous ajoutez des clés SSH.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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.
Pour ajouter une clé SSH publique à votre compte, utilisez la commande
gcloud compute os-login ssh-keys add
:gcloud compute os-login ssh-keys add \ --key-file=KEY_FILE_PATH \ --project=PROJECT \ --ttl=EXPIRE_TIME
Remplacez les éléments suivants :
KEY_FILE_PATH
: chemin d'accès à la clé SSH publique sur votre poste de travail. La clé doit utiliser le formatpublic-openssh
.PROJECT
: projet dans lequel vous souhaitez utiliser votre clé SSH (facultatif). Spécifiez ce champ pour utiliser votre clé SSH dans un projet extérieur à votre organisation ou si vous n'êtes pas membre d'une organisation Cloud Identity.EXPIRE_TIME
: (facultatif) délai d'expiration de la clé SSH.Par exemple, si vous spécifiez
30m
, la clé SSH expire au bout de 30 minutes.Cette option utilise les unités suivantes :
s
pour les secondesm
pour les minutesh
pour les heuresd
pour les jours
Terraform
Pour ajouter une clé SSH publique à votre compte, utilisez la ressource google_client_openid_userinfo
avec la ressource google_os_login_ssh_public_key
.
REST
Pour ajouter une clé SSH publique à votre compte, utilisez la méthode users.importSshPublicKey
de l'API OS Login :
POST https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL:importSshPublicKey { "key": "SSH_KEY", "expirationTimeUsec": "EXPIRATION_TIMESTAMP" }
Remplacez les éléments suivants :
ACCOUNT_EMAIL
: adresse e-mail associée à votre compteSSH_KEY
: clé publique à appliquer au compteEXPIRATION_TIMESTAMP
: délai d'expiration de la clé en microsecondes depuis l'epoch (1 seconde = 106 microsecondes)
Ajouter des clés SSH aux VM qui utilisent des clés SSH basées sur des métadonnées
Les VM qui n'utilisent pas OS Login stockent les clés SSH dans les métadonnées de projet et d'instance Compute Engine. 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 du projet ou de l'instance à l'aide de la console Google Cloud, de gcloud CLI ou de l'API Compute Engine.
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 console Google Cloud, procédez comme suit :
Dans la console Google Cloud, accédez à la page Métadonnées.
Cliquez sur l'onglet Clés SSH.
Cliquez sur Modifier.
Cliquez sur Ajouter un élément. Une zone de texte s'ouvre.
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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter à des VM Linux 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Format d'une clé sans délai d'expiration :
Cliquez sur Enregistrer.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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.
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 :
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 :
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...
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 de clés que vous venez de copier.
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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Format d'une clé sans délai d'expiration :
Enregistrez et fermez le fichier.
Exécutez la commande
gcloud compute project-info add-metadata
pour définir la valeurssh-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
.
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 :
Récupérez les valeurs
fingerprint
etssh-keys
des métadonnées à l'aide de la méthodeprojects.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"}" } ] ...
Ajoutez la nouvelle valeur
ssh-keys
à l'aide de la méthodeprojects.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êteprojects.get
FINGERPRINT
: valeur defingerprint
à partir de la réponse de la requêteprojects.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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Format d'une clé sans délai d'expiration :
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 console Google Cloud, de gcloud CLI ou de l'API Compute Engine.
Console
Pour créer une VM et ajouter simultanément une clé SSH publique aux métadonnées d'instance à l'aide de la console Google Cloud, procédez comme suit :
Accédez à la page Créer une instance dans Google Cloud Console.
Spécifiez les détails de la VM.
Développez la section Options avancées et procédez comme suit :
Développez la section Sécurité.
Sélectionnez Ajouter des clés SSH générées manuellement.
Cliquez sur Ajouter un élément.
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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter à des VM Linux 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Format d'une clé sans délai d'expiration :
Pour créer et démarrer la VM, cliquez sur Créer.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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.
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 VMPUBLIC_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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Format d'une clé sans délai d'expiration :
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.
Terraform
Pour ajouter une clé SSH publique à vos métadonnées d'instance, utilisez la ressource google_compute_instance
.
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 projetZONE
: 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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\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 console Google 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 console Google Cloud, procédez comme suit :
Dans Google Cloud Console, accédez à la page Instances de VM.
Cliquez sur le nom de la VM pour laquelle vous souhaitez ajouter une clé SSH.
Cliquez sur Modifier.
Sous Clés SSH, cliquez sur Ajouter un élément.
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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez la section Se connecter à des VM Linux 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Format d'une clé sans délai d'expiration :
Cliquez sur Enregistrer.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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.
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 :
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 :
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"} ...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 de clés que vous venez de copier.
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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Enregistrez et fermez le fichier.
Exécutez la commande
gcloud compute instances add-metadata
pour définir la valeurssh-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.
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 :
Récupérez les valeurs
fingerprint
etssh-keys
des métadonnées à l'aide de la méthodeinstances.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"}" } ] ...
Ajoutez la nouvelle valeur
ssh-keys
à l'aide de la méthodeinstances.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êteinstances.get
FINGERPRINT
:fingerprint
à partir de la réponse de la requêteprojects.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 publiqueUSERNAME
: votre nom d'utilisateur. Par exemple,cloudysanfrancisco
oucloudysanfrancisco_gmail_com
.Pour les VM Linux,
USERNAME
ne peut pas être défini surroot
, 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'utilisateurcloudysanfrancisco
du domaine ADad.example.com
possède unUSERNAME
deexample\cloudysanfrancisco
.EXPIRE_TIME
: heure d'expiration de la clé, au format ISO 8601. Par exemple :2021-12-04T20:12:00+0000
.
- Format d'une clé sans délai d'expiration :
Étape suivante
- Découvrez comment vous connecter à des VM.
- Découvrez comment gérer l'accès aux VM.
- Découvrez comment transférer des fichiers vers des VM.
- Découvrez comment les connexions SSH aux VM Linux fonctionnent sur Compute Engine.