Se connecter à des VM à l'aide de méthodes avancées


En général, les meilleures méthodes de connexion SSH sont décrites dans le document Se connecter à des instances. Toutefois, si vous devez gérer vos propres identifiants, utiliser des outils tiers ou vous connecter en utilisant d'autres chemins de connexion, il est possible que les méthodes avancées présentées ci-dessous correspondent davantage à vos besoins que les méthodes standards.

Il existe plusieurs méthodes avancées permettant de se connecter aux VM Linux :

Avant de commencer

Fournir des clés SSH publiques aux instances

Normalement, Compute Engine crée et gère les clés SSH chaque fois que vous vous connectez à l'aide des méthodes décrites dans la section Se connecter à des instances.

Toutefois, si vous devez utiliser vos propres clés SSH (par exemple, si vous utilisez un outil tiers), vous devez générer votre propre paire de clés SSH et fournir votre clé SSH publique à l'instance avant de pouvoir vous connecter.

Si vous ne savez pas comment générer votre propre clé SSH ni où trouver votre fichier de clé SSH publique, consultez les sections Créer une clé SSH et Trouver une clé SSH.

Pour fournir votre clé SSH à l'instance, appliquez l'une des méthodes suivantes :

  • (Recommandé) Activez la connexion au système d'exploitation (OS Login). OS Login utilise des rôles IAM pour fournir votre clé SSH publique à l'instance via votre compte Google ou un compte utilisateur géré. Pour obtenir des instructions, consultez la page Configurer la connexion au système d'exploitation.

    Lorsque vous configurez la connexion au système d'exploitation, veillez à suivre la procédure d'ajout de clés SSH à un compte utilisateur. Au cours de cette étape, vous pouvez ajouter votre clé publique au compte utilisateur que vous souhaitez utiliser pour vous connecter à votre VM.

    Pour en savoir plus sur les avantages de cette fonctionnalité, consultez la page OS Login.

  • (Déconseillé) Ajoutez et supprimez manuellement les clés SSH en modifiant les métadonnées du projet ou de l'instance. Consultez la section Gérer des clés SSH dans les métadonnées. Cette méthode ajoute des risques et une complexité inutiles et n'est pas recommandée, à moins que la méthode OS Login présentée ci-dessus ne fonctionne pas dans votre cas. Consultez la section Risques liés à la gestion manuelle des clés.

  • Si votre instance est gérée par une autre personne qui a déjà des accès, comme par exemple un administrateur système, vous pouvez lui fournir votre clé SSH publique et lui demander de la configurer manuellement. Cela implique généralement que cette personne se connecte à votre instance, copie le fichier de votre clé publique dans le répertoire de base de l'instance et modifie les autorisations sur le fichier. Toutefois, cela dépend de la façon dont votre entreprise gère les instances.

Se connecter à l'aide d'outils tiers

En fonction du système d'exploitation de votre poste de travail local, suivez les instructions suivantes :

Linux et macOS

Pour vous connecter en SSH à partir d'une machine Linux ou macOS, exécutez la commande ssh intégrée dans un terminal local :

  1. Si vous ne l'avez pas déjà fait, fournissez votre clé SSH publique à une instance en utilisant l'une des options disponibles. Vous ne pouvez pas continuer sans cela.

  2. Dans Google Cloud Console, accédez à la page Instances de VM et recherchez l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances de VM"

  3. À partir de votre terminal local, exécutez la commande ssh avec votre fichier de clé SSH privée, le nom d'utilisateur et l'adresse IP externe de l'instance à connecter. Exemple :

    ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Remplacez l'élément suivant :

    • PATH_TO_PRIVATE_KEY : chemin d'accès au fichier de clé SSH privée.
    • USERNAME : nom de l'utilisateur qui se connecte à l'instance. Si vous gérez vos clés SSH dans les métadonnées, le nom d'utilisateur est celui que vous avez spécifié lorsque vous avez créé la clé SSH. Pour les comptes OS Login, le nom d'utilisateur est défini dans votre profil Google.
    • EXTERNAL_IP : adresse IP externe de votre instance.

    Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Windows (PuTTY)

Windows n'inclut pas de client SSH intégré, ce qui signifie que vous devez télécharger et installer un client tiers. Les instructions suivantes montrent comment se connecter avec PuTTY.

Pour vous connecter à une instance depuis Windows à l'aide de PuTTY, procédez comme suit :

  1. Si vous ne l'avez pas déjà fait, fournissez votre clé SSH publique à une instance en utilisant l'une des options disponibles. Vous ne pouvez pas continuer sans cela.

  2. Dans Google Cloud Console, accédez à la page Instances de VM et recherchez l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter. Laissez l'adresse IP externe disponible pour les étapes ultérieures.

    Accéder à la page "Instances de VM"

  3. Si vous ne l'avez pas déjà fait, téléchargez putty.exe.

  4. Ouvrez PuTTY en lançant putty.exe. Une fenêtre de configuration de la connexion s'ouvre.

  5. Dans le champ Nom d'hôte, saisissez le nom d'utilisateur associé à la clé SSH et l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter. Utilisez le format suivant :

    USERNAME@EXTERNAL_IP

    Remplacez l'élément suivant :

    • USERNAME : nom de l'utilisateur qui se connecte à l'instance. Il doit s'agir du nom d'utilisateur que vous avez spécifié lors de la création de la clé SSH.
    • EXTERNAL_IP : adresse IP externe de l'instance à laquelle vous souhaitez vous connecter.

    Par exemple :

    Définir le champ "Nom d'hôte" sur jane_doe@203.0.113.2 en tant qu'exemple de nom d'utilisateur et d'adresse IP

  6. Dans le menu Catégorie, accédez à Connexion > SSH > Auth.

  7. Dans le champ Fichier de clé privée pour l'authentification, accédez à l'emplacement de votre fichier de clé privée.

    Par exemple :

    Définir le chemin d'accès au fichier my-ssh-key.ppk dans le champ du fichier de clé privée.

  8. Cliquez sur Ouvrir pour ouvrir un terminal avec une connexion à votre instance.

Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Chrome OS (application SSH)

Les Chromebooks ou les systèmes d'exploitation sur lesquels Chrome est installé sont compatibles avec Secure Shell comme client SSH. Pour vous connecter à des instances depuis l'application Secure Shell, procédez comme suit :

  1. Si vous ne l'avez pas déjà fait, fournissez votre clé SSH publique à une instance en utilisant l'une des options disponibles. Vous ne pouvez pas continuer sans cela.

  2. Si vous ne l'avez pas déjà fait, installez Secure Shell sur votre Chromebook ou dans le navigateur Chrome.

  3. Dans Google Cloud Console, accédez à la page Instances de VM et recherchez l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter. Laissez l'adresse IP externe disponible pour les étapes ultérieures.

    Accéder à la page "Instances de VM"

  4. Ouvrez l'application Secure Shell dans un onglet du navigateur Chrome. Vous pouvez accéder aux applications Chrome en saisissant chrome://apps dans la barre d'adresse.

  5. Saisissez le nom d'utilisateur associé à la paire de clés SSH et l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter. Utilisez le format suivant :

     USERNAME@EXTERNAL_IP
     

    Remplacez l'élément suivant :

    • USERNAME : nom de l'utilisateur qui se connecte à l'instance. Il doit s'agir du nom d'utilisateur que vous avez spécifié lors de la création de la clé SSH.
    • EXTERNAL_IP : adresse IP externe de l'instance à laquelle vous souhaitez vous connecter.
  6. Dans le champ Identité, sélectionnez le fichier de clé SSH privée que vous souhaitez utiliser pour vous connecter à l'instance. Si nécessaire, cliquez sur Importer pour sélectionner un fichier de clé privée sur votre poste de travail local.

  7. Cliquez sur Se connecter pour vous connecter à l'instance.

Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Autres options SSH

Outre les options détaillées ci-dessus, les options de connexion à une instance via SSH listées ci-après sont également disponibles :

Se connecter à des instances sans adresse IP externe

Si vos instances ne disposent pas d'une adresse IP externe, vous pouvez toujours vous connecter à ces instances en utilisant leur adresse IP interne sur un réseau VPC Google Cloud. Par exemple, vous pouvez toujours vous connecter aux VM que vous isolez intentionnellement depuis des réseaux externes à l'aide des méthodes suivantes :

Se connecter via une connexion VPN

Pour vous connecter à une instance sans adresse IP externe à l'aide d'un réseau privé virtuel (VPN), procédez comme suit :

  • Vous devez utiliser un ordinateur pouvant accéder à l'instance de VM via un tunnel Cloud VPN.

    Par exemple, vous pouvez avoir un VPN que votre réseau local sur site partage avec votre réseau VPC Google Cloud. Dans ce cas, connectez-vous à l'instance à l'aide de l'outil de ligne de commande gcloud, de SSH sous Linux ou macOS, ou de clients SSH tiers tels que PuTTY sous Windows.

Pour en savoir plus, consultez les pages suivantes :

gcloud

Pour vous connecter à une instance sans adresse IP externe, utilisez la commande gcloud compute ssh avec l'option --internal-ip.

  1. Dans Google Cloud Console, accédez à la page Instances de VM et recherchez l'adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances de VM"

  2. Connectez-vous à l'instance.

    gcloud compute ssh INTERNAL_INSTANCE_NAME \
        --zone=ZONE \
        --internal-ip
    

    Remplacez l'élément suivant :

    • INTERNAL_INSTANCE_NAME : nom de l'instance à laquelle vous souhaitez vous connecter
    • ZONE : nom de la zone dans laquelle se trouve l'instance
  3. Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Linux et macOS

Pour vous connecter à une instance sans adresse IP externe à partir de postes de travail Linux ou macOS, procédez comme suit :

  1. Fournissez votre clé SSH publique à une instance en utilisant l'une des options disponibles. Vous ne pouvez pas continuer sans cela.

  2. Sur votre machine locale, démarrez ssh-agent pour qu'il gère vos clés SSH à votre place :

    eval ssh-agent $SHELL
    
  3. Exécutez la commande ssh-add pour charger votre clé SSH privée dans l'agent à partir de votre ordinateur local et l'utiliser pour l'authentification de toutes les commandes SSH. Remplacez PRIVATE_KEY par le nom de votre fichier de clé privée.

    ssh-add ~/.ssh/PRIVATE_KEY
    
  4. Dans Google Cloud Console, accédez à la page Instances de VM et recherchez l'adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances de VM"

  5. À partir de votre terminal local, exécutez la commande ssh avec le nom d'utilisateur associé à la clé SSH privée et l'adresse IP interne de l'instance à connecter. Exemple :

    ssh USERNAME@INTERNAL_INSTANCE_IP_ADDRESS

    Remplacez l'élément suivant :

    • USERNAME : nom de l'utilisateur qui se connecte à l'instance. Il doit s'agir du nom d'utilisateur que vous avez spécifié lors de la création de la clé SSH.
    • INTERNAL_INSTANCE_IP_ADDRESS : adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Windows (PuTTY)

Pour vous connecter à une instance sans adresse IP externe à partir de postes de travail Windows, procédez comme suit :

  1. Si vous ne l'avez pas déjà fait, fournissez votre clé SSH publique à une instance en utilisant l'une des options disponibles. Vous ne pouvez pas continuer sans cela.

  2. Dans Google Cloud Console, accédez à la page Instances de VM et recherchez l'adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances de VM"

  3. Suivez les étapes précédentes pour vous connecter à une instance à l'aide de PuTTY à partir de Windows, mais effectuez la modification suivante :

    • Lorsque les étapes vous indiquent de spécifier une adresse IP externe, spécifiez plutôt l'adresse interne de l'instance à laquelle vous souhaitez vous connecter.

Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Se connecter via un hôte bastion

Une autre méthode de connexion à une instance qui ne possède pas d'adresse IP externe consiste à se connecter via un hôte bastion. L'utilisation d'un hôte bastion vous permet également de vous connecter à des instances sur d'autres réseaux VPC appairés.

Pour vous connecter à une instance via un hôte bastion sous Linux et macOS, utilisez l'outil de ligne de commande gcloud ou SSH. Pour vous connecter à partir de Windows, utilisez un client SSH tiers tel que PuTTY.

La connexion à d'autres instances à partir d'un hôte bastion requiert une clé SSH privée. Il existe plusieurs manière de gérer ces clés :

  • Installez l'outil de ligne de commande gcloud et configurez-le pour gérer vos clés privées à votre place.
  • Transférez votre clé privée à l'instance de l'hôte bastion en activant le transfert d'agent dans votre client SSH.

Consultez les exemples suivants pour découvrir la procédure complète :

gcloud

L'outil de ligne de commande gcloud vous permet de vous connecter à des instances qui ne possèdent pas d'adresse IP externe sans avoir à transférer vos clés SSH privées vers l'hôte bastion. Pour ce faire, installez gcloud sur votre poste de travail local et sur l'instance de l'hôte bastion, si vous ne l'avez pas déjà fait.

Pour utiliser l'outil de ligne de commande gcloud afin de vous connecter à une instance qui ne possède pas d'adresse IP externe, procédez comme suit :

  1. Définissez un niveau d'accès en lecture/écriture à l'API Compute Engine pour le compte de service sur l'instance de votre hôte bastion en incluant --scopes compute-rw dans votre commande. Pour en savoir plus, consultez la section Modifier le compte de service et les niveaux d'accès d'une instance.

  2. Accordez les autorisations IAM nécessaires pour permettre à votre hôte bastion d'accéder à votre clé publique SSH, à l'aide d'OS Login (recommandé) ou des métadonnées du projet. Suivez l'une des procédures suivantes :

    Le compte de service de l'hôte bastion peut désormais appliquer votre clé SSH publique.

  3. Connectez-vous à l'instance Linux de l'hôte bastion. Remplacez EXTERNAL_INSTANCE_NAME par le nom de l'instance de l'hôte bastion que vous utilisez pour accéder au réseau interne.

    gcloud compute ssh EXTERNAL_INSTANCE_NAME
    
  4. Depuis l'instance Linux de l'hôte bastion, exécutez la commande gcloud compute ssh avec l'option --internal-ip pour vous connecter aux instances à l'aide de leurs adresses IP internes :

    gcloud compute ssh INTERNAL_INSTANCE_NAME --internal-ip
    

    Remplacez INTERNAL_INSTANCE_NAME par le nom de l'instance à laquelle vous souhaitez vous connecter.

Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Linux et macOS

Si vous devez transférer des clés privées vers l'instance de l'hôte bastion, vous devez ajouter vos clés à ssh-agent. Exécutez ensuite la commande gcloud compute ssh ou ssh pour établir la connexion initiale à l'hôte bastion et transférer les clés vers l'agent SSH. Ce processus ne fonctionne que sur les postes de travail Linux et macOS. Si vous devez transférer des clés privées vers un hôte bastion à partir d'un poste de travail Windows, suivez plutôt les instructions PuTTY.

Pour vous connecter à une instance sans adresse IP externe à partir de postes de travail Linux ou macOS, procédez comme suit :

  1. Fournissez votre clé SSH publique en utilisant l'une des options disponibles. Veillez à fournir cette clé SSH publique à la fois à l'instance Linux de l'hôte bastion et à l'instance sans adresse IP externe.

  2. Sur votre machine locale, démarrez ssh-agent pour qu'il gère vos clés SSH à votre place :

    eval ssh-agent $SHELL
    
  3. Utilisez la commande ssh-add pour charger votre clé SSH privée dans l'agent à partir de votre ordinateur local. Une fois la clé ajoutée, les commandes SSH utilisent automatiquement le fichier de clé SSH privée pour l'authentification.

    $ ssh-add ~/.ssh/PRIVATE_KEY
    

    Remplacez PRIVATE_KEY par le nom de votre fichier de clé privée.

  4. Dans Google Cloud Console, accédez à la page Instances de VM. Dans la colonne Adresse IP externe, recherchez l'adresse IP externe de l'instance Linux de l'hôte bastion. Et dans la colonne Adresse IP interne, recherchez l'adresse IP interne de l'instance interne à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances de VM"

  5. Connectez-vous à l'instance Linux de l'hôte bastion en exécutant ssh ou gcloud compute ssh. Quelle que soit l'option choisie, ajoutez l'argument -A pour activer le transfert d'agent pour l'authentification.

    Connectez-vous à l'instance Linux de l'hôte bastion et transférez vos clés privées avec ssh :

    ssh -A USERNAME@BASTION_HOST_EXTERNAL_IP

    Remplacez l'élément suivant :

    • USERNAME : nom associé à votre clé SSH.
    • BASTION_HOST_EXTERNAL_IP : adresse IP externe de l'instance de l'hôte bastion que vous utilisez pour accéder au réseau interne

    Vous pouvez également vous connecter à l'instance de l'hôte bastion et transférer vos clés privées à l'aide de la commande gcloud compute ssh. Cette option vous permet de vous connecter à l'instance de l'hôte bastion à l'aide de l'outil de ligne de commande gcloud, puis d'exécuter la commande ssh standard avec les identifiants transférés lorsque vous vous connectez à des adresses IP internes.

    gcloud compute ssh --ssh-flag="-A" BASTION_HOST_INSTANCE_NAME
    

    Remplacez BASTION_HOST_INSTANCE_NAME par le nom de l'instance de l'hôte bastion que vous utilisez pour accéder à votre réseau interne.

  6. À partir de l'instance Linux de l'hôte bastion, utilisez SSH pour vous connecter à une instance qui ne possède pas d'adresse IP externe :

    ssh USERNAME@INTERNAL_INSTANCE_IP_ADDRESS

    Remplacez l'élément suivant :

    • USERNAME : nom associé à votre clé SSH.
    • INTERNAL_INSTANCE_IP_ADDRESS : adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Windows

Pour vous connecter à une instance sans adresse IP externe à partir de postes de travail Windows, procédez comme suit :

  1. Fournissez votre clé SSH publique en utilisant l'une des options disponibles. Veillez à fournir cette clé SSH publique à la fois à l'instance Linux de l'hôte bastion et à l'instance sans adresse IP externe.

  2. Dans Google Cloud Console, accédez à la page Instances de VM. Dans la colonne Adresse IP externe, recherchez l'adresse IP externe de l'instance Linux de l'hôte bastion. Et dans la colonne Adresse IP interne, recherchez l'adresse IP interne de l'instance interne à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances de VM"

  3. Connectez-vous à l'instance Linux de l'hôte bastion à l'aide de PuTTY. Pour transmettre votre clé SSH privée à l'hôte bastion, activez le paramètre Allow agent forwarding (Autoriser le transfert d'agent) comme indiqué dans la capture d'écran suivante :

    Autoriser le transfert d'agent pour l'instance à laquelle vous vous connectez.

  4. À partir de l'instance Linux de l'hôte bastion, utilisez SSH pour vous connecter à une instance qui ne possède pas d'adresse IP externe :

    ssh USERNAME@INTERNAL_IP_ADDRESS
    

    Remplacez l'élément suivant :

    • USERNAME : nom de l'utilisateur qui se connecte à l'instance. Il doit s'agir du nom d'utilisateur que vous avez spécifié lors de la création de la clé SSH.
    • INTERNAL_IP_ADDRESS : adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

    Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez terminé, déconnectez-vous de l'instance en exécutant la commande exit.

Se connecter via IAP

L'utilisation de SSH avec la fonctionnalité de transfert TCP d'IAP encapsule une connexion SSH en HTTPS. La fonctionnalité de transfert TCP d'IAP envoie ensuite l'URL à l'instance distante.

  1. Attribuez le rôle roles/iap.tunnelResourceAccessor à l'utilisateur qui souhaite se connecter à la VM.

  2. Connectez-vous à la VM.

    gcloud compute ssh INSTANCE_NAME --zone ZONE
    

    Remplacez l'élément suivant :

    • INSTANCE_NAME : nom de l'instance à laquelle vous souhaitez vous connecter
    • ZONE : nom de la zone dans laquelle se trouve l'instance

Pour en savoir plus, y compris sur la configuration des règles contextuelles et accéder à d'autres ports TCP sur la VM, consultez la page Utiliser le transfert TCP.

Se connecter aux instances en tant qu'utilisateur root

Par défaut, les images publiques et les systèmes d'exploitation les plus courants n'autorisent pas la connexion en tant qu'utilisateur racine via SSH. Vous pouvez vous connecter aux instances en tant qu'utilisateur racine via SSH uniquement si vous les configurez pour fonctionner de cette manière.

Nous vous recommandons de définir le paramètre PermitRootLogin sur no dans le fichier de configuration SSH /etc/ssh/sshd_config. Avec ce paramètre, vous ne pouvez pas vous connecter à une instance en tant qu'utilisateur racine, même si vous spécifiez une clé SSH pour root dans les métadonnées de projet ou d'instance. Si un utilisateur a besoin des autorisations racine, il peut les obtenir en exécutant les commandes avec sudo.

Si vous avez configuré une instance pour autoriser SSH en tant qu'utilisateur racine et que vous avez configuré une clé SSH pour l'utilisateur racine sur cette instance, vous pouvez vous connecter en tant qu'utilisateur racine à l'aide de la commande gcloud compute ssh, en spécifiant root@ avant le nom de l'instance :

gcloud compute ssh \
    --project=PROJECT_ID \
    --zone=ZONE \
    root@INSTANCE_NAME

Remplacez l'élément suivant :

  • PROJECT_ID : identifiant du projet contenant l'instance
  • ZONE : nom de la zone dans laquelle se trouve l'instance
  • INSTANCE_NAME : nom de l'instance

Connexion manuelle entre des instances en tant que compte de service

Dans certaines situations, vous souhaitez peut-être vous connecter à des instances et exécuter des commandes comme si vous étiez le compte de service associé à ces instances. La commande gcloud compute ssh vous permet d'utiliser les identifiants SSH d'un compte de service pour vous connecter d'une instance à une autre, vous permettant ainsi d'exécuter des commandes sur la seconde instance en tant que compte de service.

L'outil de ligne de commande gcloud génère automatiquement une paire de clés SSH et l'associe au compte de service de votre instance. Une fois que vous êtes connecté à une autre instance en tant que compte de service, vous pouvez exécuter d'autres commandes gcloud à l'aide des autorisations IAM du compte de service.

Pour cet exemple, supposons que vous disposiez de l'environnement suivant :

  • Instance A :
    • L'instance A est associée à un compte de service.
    • Le compte de service associé à l'instance A possède les rôles OS Login nécessaires, configurés au niveau du projet ou spécifiquement pour la ressource de l'instance B.
    • Le compte de service dispose du champ d'application https://www.googleapis.com/auth/cloud-platform au niveau de la plate-forme sur l'instance A.
  • Instance B :
    • L'instance B s'exécute sur le même réseau interne que l'instance A ou sur un réseau dont les règles de pare-feu autorisent les connexions SSH à partir de l'instance A.
    • La fonctionnalité OS Login est activée sur votre projet ou spécifiquement sur l'instance B.
  • Votre compte utilisateur personnel :
    • Votre compte dispose du rôle roles/iam.serviceAccountUser pour le compte de service associé à l'instance A.
    • Votre compte dispose d'un accès SSH spécifique à l'instance A.
    • Votre compte n'a pas accès à l'instance B. Le compte de service est le seul compte disposant des rôles OS Login nécessaires pour se connecter à l'instance B.

Connectez-vous à l'instance A et exécutez les commandes en tant que compte de service. Cette étape nécessite que vous disposiez du rôle roles/iam.serviceAccountUser pour ce compte de service :

  1. Connectez-vous à l'instance A en tant qu'utilisateur disposant du rôle roles/iam.serviceAccountUser. Par exemple, vous pouvez utiliser l'outil de ligne de commande gcloud pour établir cette première connexion SSH :

    gcloud compute ssh instance-a --project=PROJECT_ID --zone=ZONE
  2. Tant que vous disposez du rôle roles/iam.serviceAccountUser, après avoir utilisé SSH pour vous connecter à l'instance A, vous pouvez exécuter des commandes en tant que compte de service. Dans cet exemple, exécutez l'outil gcloud sur l'instance A pour créer une connexion chain-SSH avec l'instance B. L'outil gcloud identifie que l'instance B est configurée pour utiliser OS Login, et que le compte de service dispose des rôles IAM nécessaires pour établir une connexion SSH avec l'instance B.

    gcloud compute ssh instance-b --project=PROJECT_ID --zone=ZONE

    Le résultat ressemble à ce qui suit :

    WARNING: Using OS Login user [sa_113491385848438711199] instead of default user [my-username]
    Linux instance-b 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64
    ⋮
    
  3. Vous êtes maintenant connecté à l'instance B en tant que compte de service et pouvez exécuter des commandes en tant que compte de service. Par exemple :

    sa_113491385848438711199@instance-b:~$ uname -a
    
    Linux instance-b 4.9.0-8-amd64 #1 SMP Debian 4.9.110-3+deb9u6 (2018-10-08) x86_64 GNU/Linux
    

Étape suivante