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, créez une paire de clés SSH.
-
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 :
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 Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.
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.
-
- Définissez une région et une zone par défaut.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Pour 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.
Si 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 .
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
-
Dans la console Google Cloud , activez Cloud Shell.
En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
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 :
spour les secondesmpour les minuteshpour les heuresdpour 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 Loginstockent 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 Google 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 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.
Cliquez sur Ajouter un élément.
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 publiqueUSERNAME: votre nom d'utilisateur. Par exemple,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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
Dans la console Google Cloud , activez Cloud Shell.
En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
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 describepour 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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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-metadatapour définir la valeurssh-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.
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
fingerprintetssh-keysdes métadonnées à l'aide de la méthodeprojects.get.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"}" } ] ...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 projetEXISTING_SSH_KEYS: valeur dessh-keysà partir de la réponse de la requêteprojects.getFINGERPRINT: valeur defingerprintà partir de la réponse de la requêteprojects.getNEW_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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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 consoleGoogle 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 Google Cloud , procédez comme suit :
Accédez à la page Créer une instance dans la console Google Cloud .
Pour ajouter une clé SSH publique aux métadonnées d'instance, procédez comme suit :
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.
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.
Dans la section 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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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 :
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.
gcloud
-
Dans la console Google Cloud , activez Cloud Shell.
En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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 aux métadonnées de votre 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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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 consoleGoogle 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 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 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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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
-
Dans la console Google Cloud , activez Cloud Shell.
En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
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 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 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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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-metadatapour 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_FILEpar 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
fingerprintetssh-keysdes 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 projetEXISTING_SSH_KEYS: valeur de la cléssh-keysde la réponse de la requêteinstances.getFINGERPRINT:fingerprintà partir de la réponse de la requêteprojects.getNEW_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,cloudysanfranciscooucloudysanfrancisco_gmail_com.Pour les VM Linux,
USERNAMEne 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'utilisateurcloudysanfranciscodu domaine ADad.example.compossède unUSERNAMEdeexample\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.