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

Si vous devez gérer vos propres informations d'identification, utiliser des outils tiers ou vous connecter à une instance 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 décrites à la section Se connecter à des instances.

Il existe plusieurs méthodes avancées pour se connecter aux instances Linux et Windows Server :

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é publique SSH à l'instance avant de pouvoir vous connecter.

Si vous ne savez pas comment générer votre propre paire de clés 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 et utilisez les rôles IAM pour fournir votre clé SSH publique à l'instance via votre compte Google ou un compte utilisateur géré. Pour ce faire, procédez comme indiqué dans la section Gérer les accès aux instances via la connexion au système d'exploitation pour activer la connexion au système d'exploitation et créer les rôles. Consultez ensuite la section Ajouter des clés SSH à un compte d'utilisateur pour ajouter votre clé publique au rôle que vous souhaitez utiliser pour vous connecter à votre instance.

  • (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 de connexion au système d'exploitation présentée ci-dessus ne fonctionne pas dans votre cas. Pour en savoir plus, 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é publique SSH 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

Après avoir fourni la clé publique SSH à l'instance, vous pouvez utiliser des outils SSH tiers avec votre clé SSH privée correspondante pour vous connecter.

Pour vous connecter, cliquez sur l'onglet correspondant à votre système d'exploitation local et procédez comme suit :

Linux et macOS

Pour vous connecter en SSH à partir d'une machine Linux ou MacOS, utilisez la commande ssh intégrée dans un terminal local.

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

  2. Dans la console, accédez à la page relative aux instances (ou cliquez sur le bouton ci-dessous) et recherchez l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances"

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

    ssh -i [PATH_TO_PRIVATE_KEY] [USERNAME]@[EXTERNAL_IP_ADDRESS]

    où :

    • [PATH_TO_PRIVATE_KEY] correspond au chemin d'accès à votre fichier de clé SSH privée.
    • [USERNAME] correspond au nom de l'utilisateur qui se connecte à l'instance. Si vous avez créé vos clés SSH manuellement, il doit s'agir du nom d'utilisateur que vous avez spécifié lors de la création de la clé SSH.
    • [EXTERNAL_IP_ADDRESS] correspond à l'adresse IP externe de votre instance.

    Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez fini d'utiliser l'instance, déconnectez-vous à l'aide de 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é publique SSH à une instance à l'aide de l'une des options disponibles. Vous ne pourrez pas continuer sans cela.

  2. Dans la console, accédez à la page relative aux instances (ou cliquez sur le bouton ci-dessous) et recherchez l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter. Conservez-la pour les étapes ultérieures.

    Accéder à la page "Instances"

  3. Téléchargez putty.exe si vous ne l'avez pas déjà fait.

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

  5. Dans le champ Host Name (Nom d'hôte) de la page de configuration de la connexion, entrez le nom d'utilisateur associé à la clé SSH et l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter en respectant le format suivant :

    [USERNAME]@[EXTERNAL_IP_ADDRESS]

    où :

    • [USERNAME] correspond au 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_ADDRESS] correspond à l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter.

      Par exemple :

      Définir le champ "Host Name" (Nom d'hôte) sur jane_doe@203.0.113.2

  6. Dans le menu Category (Catégorie) de gauche, accédez à Connection (Connexion) > SSH > Auth.

  7. Dans le champ Private key file for authentication (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 Open (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 fini d'utiliser l'instance, déconnectez-vous à l'aide de la commande exit.

Chrome (application SSH)

Les Chromebooks ou les systèmes d'exploitation sur lesquels Chrome est installé utilisent l'application Secure Shell en tant que 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é publique SSH à une instance à l'aide de l'une des options disponibles. Vous ne pourrez pas continuer sans cela.

  2. Installez l'application Secure Shell sur votre Chromebook ou sur le navigateur Chrome, si ce n'est déjà fait.

  3. Dans la console, accédez à la page relative aux instances (ou cliquez sur le bouton ci-dessous) et recherchez l'adresse IP externe de l'instance à laquelle vous souhaitez vous connecter. Conservez-la pour les étapes ultérieures.

    Accéder à la page "Instances"

  4. Ouvrez l'application Secure Shell dans un onglet du navigateur Chrome.

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

    [USERNAME]@[EXTERNAL_IP_ADDRESS]

    où :

    • [USERNAME] correspond au 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_ADDRESS] correspond à l'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 fini d'utiliser l'instance, déconnectez-vous à l'aide de 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 à une instance qui ne possède pas d'adresse IP externe

Si votre instance ne dispose pas d'adresse IP externe (c'est le cas par exemple d'une instance volontairement isolée des réseaux externes), vous pouvez toujours vous connecter à cette instance en utilisant son adresse IP interne depuis le réseau VPC (cloud privé virtuel) de Google Cloud Platform à l'aide de l'une des méthodes suivantes.

Se connecter sur un VPN

Pour utiliser un réseau privé virtuel (VPN) pour vous connecter à une instance sans adresse IP externe, vous devez disposer d'un ordinateur déjà connecté au même VPN que l'instance à atteindre. Par exemple, vous pouvez avoir un VPN que votre réseau local sur site partage avec votre VPC GCP. Si tel est le cas, connectez-vous à l'instance à l'aide de l'outil de ligne de commande gcloud, de SSH sous Linux et macOS, ou de clients SSH tiers tels que PuTTY sous Windows.

Pour en savoir plus, consultez les pages suivantes :

gcloud

Connectez-vous à une instance sans adresse IP externe en utilisant la commande gcloud compute ssh avec l'indicateur --internal-ip.

gcloud compute ssh [INTERNAL_INSTANCE_NAME] --internal-ip

[INTERNAL_INSTANCE_NAME] correspond au 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 fini d'utiliser l'instance, déconnectez-vous à l'aide de la commande exit.

Linux et macOS

Pour vous connecter à une instance sans adresse IP externe à partir d'un poste 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 pourrez 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. Utilisez 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.

    $ ssh-add ~/.ssh/[PRIVATE_KEY]
    

    [PRIVATE_KEY] correspond au nom de votre fichier de clé privée.

  4. Dans la console, accédez à la page relative aux instances (ou cliquez sur le bouton ci-dessous) et recherchez l'adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

    [Accéder à la page Instances] (https://console.cloud.google.com/compute/instances){: class="button button-primary" target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="body" track-metadata-end-goal="attachDisk"}

    1. À partir de votre terminal local, utilisez la commande ssh avec votre fichier de clé SSH privée, le nom d'utilisateur associé à la clé SSH et l'adresse IP interne de l'instance à laquelle vous souhaitez vous connecter. Exemple :
    $ ssh [USERNAME]@[INTERNAL_INSTANCE_IP_ADDRESS]

    où :

    • [USERNAME] correspond au 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] correspond à l'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 fini d'utiliser l'instance, déconnectez-vous à l'aide de la commande exit.

Windows (PuTTY)

Pour vous connecter à une instance sans adresse IP externe à partir d'un poste de travail Windows :

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

  2. Dans la console, accédez à la page relative aux instances (ou cliquez sur le bouton ci-dessous) et recherchez l'adresse IP interne de l'instance à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances"

  3. Connectez-vous à une instance à l'aide de PuTTY à partir de Windows, en spécifiant l'adresse IP interne de l'instance à laquelle vous souhaitez vous connecter au lieu de spécifier une adresse IP externe.

    Une fois connecté, exécutez les commandes sur votre instance à l'aide de ce terminal. Lorsque vous avez fini d'utiliser l'instance, déconnectez-vous à l'aide de 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.

Comme pour les autres méthodes, 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.

gcloud

L'outil de ligne de commande gcloud vous permet de vous connecter à des instances qui n'ont 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 pour vous connecter à une instance qui n'a 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, en utilisant la connexion au système d'exploitation (recommandé) ou les métadonnées du projet.

    Le compte de service de l'hôte bastion devrait à présent pouvoir appliquer votre clé publique SSH.

  3. Connectez-vous à l'instance Linux de l'hôte bastion.

    gcloud compute ssh [EXTERNAL_INSTANCE_NAME]
    

    [EXTERNAL_INSTANCE_NAME] est le nom de l'instance de l'hôte bastion que vous utilisez pour accéder au réseau interne.

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

    gcloud compute ssh [INTERNAL_INSTANCE_NAME] --internal-ip
    

    [INTERNAL_INSTANCE_NAME] correspond au 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 fini d'utiliser l'instance, déconnectez-vous à l'aide de la commande exit.

Linux et macOS

Si vous devez transférer des clés privées à l'instance de l'hôte bastion, vous devez ajouter vos clés à ssh-agent. Utilisez 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 à 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 et l'utiliser pour l'authentification de toutes les commandes SSH.

    $ ssh-add ~/.ssh/[PRIVATE_KEY]
    

    [PRIVATE_KEY] correspond au nom de votre fichier de clé privée.

  4. Recherchez l'adresse IP externe de l'instance Linux de l'hôte bastion ainsi que l'adresse IP interne de l'instance interne à laquelle vous souhaitez vous connecter. Vous pouvez trouver ces adresses dans les colonnes Adresse IP externe et Adresse IP interne de la page "Instances".

    Accéder à la page "Instances"

  5. Connectez-vous à l'instance Linux de l'hôte bastion en utilisant ssh ou gcloud compute ssh. Quelle que soit l'option choisie, incluez 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_ADDRESS]

    Où :

    • [USERNAME] correspond au nom associé à votre clé SSH.
    • [BASTION_HOST_EXTERNAL_IP_ADDRESS] est l'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'utiliser 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]
    

    [BASTION_HOST_INSTANCE_NAME] est le nom de l'instance de l'hôte bastion que vous utilisez pour accéder au réseau interne.

  6. À partir de l'instance Linux de l'hôte bastion, connectez-vous à l'instance qui n'a pas d'adresse IP externe à l'aide de SSH.

    $ ssh [USERNAME]@[INTERNAL_INSTANCE_IP_ADDRESS]

    où :

    • [USERNAME] correspond au nom associé à votre clé SSH.
    • [INTERNAL_INSTANCE_IP_ADDRESS] correspond à l'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 fini d'utiliser l'instance, déconnectez-vous à l'aide de 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. 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. Recherchez l'adresse IP externe de l'instance Linux de l'hôte bastion ainsi que l'adresse IP interne de l'instance interne à laquelle vous souhaitez vous connecter. Vous pouvez trouver ces adresses dans les colonnes Adresse IP externe et Adresse IP interne de la page "Instances".

    Accéder à la page "Instances"

  3. Connectez-vous à l'instance Linux de l'hôte bastion à l'aide de PuTTY. Activez le paramètre Allow agent forwarding (Autoriser le transfert d'agent) pour transmettre votre clé SSH privée à l'hôte bastion.

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

  4. À partir de l'instance Linux de l'hôte bastion, connectez-vous à l'instance qui n'a pas d'adresse IP externe à l'aide de SSH.

    $ ssh [USERNAME]@[INTERNAL_IP_ADDRESS]
    

    où :

    • [USERNAME] correspond au 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] correspond à l'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 fini d'utiliser l'instance, déconnectez-vous à l'aide de la commande exit.

Se connecter via Cloud IAP

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

Pour apprendre à vous connecter à une instance distante avec Cloud IAP, reportez-vous à la section Utiliser Cloud IAP pour le transfert TCP.

Se connecter à une instance 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 root via SSH. Vous pouvez vous connecter aux instances en tant qu'utilisateur root via SSH uniquement si vous les configurez pour fonctionner de cette manière.

Une bonne pratique consiste à définir le paramètre PermitRootLogin du fichier de configuration SSH /etc/ssh/sshd_config sur no. Avec ce paramètre, vous ne pouvez pas vous connecter à une instance en tant qu'utilisateur root, 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 root, il peut les obtenir en exécutant les commandes avec sudo.

Si vous avez configuré une instance pour autoriser SSH en tant qu'utilisateur root et que vous avez configuré une clé SSH pour l'utilisateur root sur cette instance, vous pouvez vous connecter en tant que root à 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]

où :

  • [PROJECT_ID] est l'identifiant du projet GCP contenant l'instance.
  • [ZONE] est le nom de la zone dans laquelle se trouve l'instance.
  • [INSTANCE_NAME] est le nom de l'instance.

Se connecter à une instance Windows à l'aide de PowerShell

Si vous disposez d'un poste de travail Windows équipé de PowerShell, vous pouvez vous connecter à une instance Windows Server via une session PowerShell distante. Ce processus est semblable à celui permettant de se connecter à une instance Linux avec SSH.

  1. Si vous n'avez pas encore créé de nom d'utilisateur et de mot de passe sur l'instance Windows distante, créez ou réinitialisez votre mot de passe Windows.

  2. Ajoutez une règle de pare-feu qui ouvre le port 5986 sur le réseau VPC GCP où se trouve l'instance Windows Server.

  3. Sur votre poste de travail local, ouvrez le terminal PowerShell.

  4. Vous pouvez également initialiser une variable permettant de conserver vos identifiants utilisateur afin de ne pas avoir à les saisir chaque fois que vous vous connectez à l'instance. Si vous ignorez cette étape, vous serez invité à saisir votre nom d'utilisateur et votre mot de passe ultérieurement.

    PS C:\> $credentials = Get-Credential
    
  5. Utilisez la commande Enter-PSSession pour démarrer une session PowerShell à distance, en incluant les indicateurs pour utiliser SSL et ignorer les vérifications d'identification.

    PS C:\> Enter-PSSession -ComputerName [IP_ADDRESS] -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials
    

    [IP_ADDRESS] correspond à l'adresse IP externe, au nom DNS ou au nom de l'ordinateur Windows pour l'instance à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances"

Une fois la connexion établie, l'invite de commande change pour inclure l'adresse IP de l'instance Windows distante. Vous pouvez maintenant vous servir du terminal pour exécuter des commandes PowerShell sur l'instance Windows Server à distance.

Au lieu de la commande Enter-PSSession, vous pouvez exécuter Invoke-Command avec l'indicateur -ScriptBlock pour exécuter des commandes PowerShell sur l'instance à distance sans établir de session interactive.

PS C:\> Invoke-Command -ComputerName [IP_ADDRESS] -ScriptBlock { [SCRIPT] } -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials

où :

  • [IP_ADDRESS] correspond à l'adresse IP, au nom du système DNS ou au nom de l'ordinateur Windows pour l'instance à laquelle vous souhaitez vous connecter.
  • [SCRIPT] correspond à une ou plusieurs commandes à exécuter sur l'instance distante. Par exemple, spécifiez Get-EventLog -log "Windows PowerShell" pour obtenir une liste des événements du journal.

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 informations d'identification 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 de connexion au système d'exploitation 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 :
  • 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 de connexion au système d'exploitation 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 :

    my-username@localworkstation:~$ gcloud compute ssh instance-a --project my-project --zone us-east1-d
    
  2. Après avoir établi une connexion SSH à l'instance A, vous pouvez exécuter des commandes en tant que compte de service, à condition de disposer du rôle roles/iam.serviceAccountUser. Dans cet exemple, exécutez l’outil de ligne de commande gcloud sur l’instance A pour créer une connexion SSH-chain avec l’instance B. L’outil de ligne de commande gcloud identifie que l’instance B est activée pour utiliser la connexion au système d’exploitation, et que le compte de service dispose des rôles IAM nécessaires pour établir une connexion SSH avec l’instance B.

    my-username@instance-a:~$ gcloud compute ssh instance-b --project my-project --zone us-east1-d
    
    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.

    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

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine