Se connecter à des VM Linux à l'aide d'un hôte bastion


Ce document explique comment se connecter à une instance de machine virtuelle (VM) via son adresse IP interne à l'aide d'une VM d'hôte bastion. Les hôtes bastion fournissent un point d'entrée externe dans un réseau cloud privé virtuel (VPC) contenant des VM sans adresse IP externe. Lorsque vous utilisez un hôte bastion, connectez-vous d'abord à l'hôte bastion, puis à la VM cible.

Se connecter à une VM à l'aide de son adresse IP interne est utile si la VM ne possède pas d'adresse IP externe. Si la VM possède une adresse IP externe, connectez-vous à la VM à l'aide de son adresse IP externe. Si vous devez vous connecter à une VM dépourvue d'adresses IP externes et que vous ne pouvez pas utiliser d'hôte bastion, consultez les autres méthodes répertoriées dans la section Options de connexion pour les VM internes uniquement.

Systèmes d'exploitation compatibles

Ces méthodes de connexion sont compatibles avec toutes les images Linux publiques disponibles sur Compute Engine. Pour les images Fedora CoreOS, vous devez configurer l'accès SSH afin de pouvoir utiliser ces méthodes.

Créer une VM d'hôte bastion

Créez une VM Compute Engine dans le réseau interne du cluster privé pour agir en tant qu'hôte bastion pouvant gérer le cluster.

Console

Créez une VM d'hôte bastion en procédant comme suit:

  1. Accédez à la page Créer une instance dans Google Cloud Console.

    Accéder à la page Créer une instance

    1. Spécifiez les détails suivants de la VM:
    • Nom : le nom de votre VM.
    • Type de machine : un type de machine. Choisissez un petit type de machine, tel que e2-micro.
    • Système d'exploitation du Disque de démarrage : tout système d'exploitation Linux.
  2. Développez la section Options avancées et procédez comme suit :

    1. Dans la section Interfaces réseau, sélectionnez le même réseau et sous-réseau VPC que la VM cible.

    2. Pour Adresse IPv4 externe, sélectionnez Éphémère.

  3. Pour créer et démarrer la VM, cliquez sur Créer.

gcloud

Créez une VM d'hôte bastion à l'aide de la commande gcloud compute instances create suivante:

  1. Dans la console Google Cloud, activez Cloud Shell.

    Activer Cloud Shell

    En bas de la fenêtre 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.

  2. Créez la VM de l'hôte bastion en exécutant la commande suivante:

    gcloud compute instances create VM_NAME \
      --zone=ZONE \
      --machine-type=e2-micro \
      --image-family=IMAGE_FAMILY \
      --image-project=IMAGE_PROJECT \
      --network-interface=subnet=SUBNET,address=""
    

    Remplacez les éléments suivants :

    • VM_NAME : Nom de la VM.
    • ZONE: zone de la VM.
    • IMAGE_FAMILY: famille d'images Linux.
    • IMAGE_PROJECT: projet d'image contenant l'image.
    • SUBNET: le même sous-réseau VPC que la VM cible. Si vous utilisez le VPC par défaut, le SUBNET est défini sur default.

Se connecter à des VM

Pour vous connecter à une VM, suivez la procédure décrite dans l'un des onglets ci-dessous.

gcloud

Connectez-vous à une VM à l'aide de SSH via un hôte bastion en exécutant la commande gcloud compute ssh:

  1. Connectez-vous à la VM de l'hôte bastion en exécutant la commande suivante:

    gcloud compute ssh BASTION_NAME

    Remplacez BASTION_NAME par le nom de la VM de l'hôte bastion.

  2. À partir de la VM de l'hôte bastion, connectez-vous à la VM principale via son adresse IP interne à l'aide de l'option --internal-ip:

    gcloud compute ssh VM_NAME \
        --internal-ip

    Remplacez VM_NAME par le nom de la VM à laquelle vous souhaitez vous connecter.

Clients OpenSSH

Connectez-vous à une VM via un hôte bastion à partir d'un client OpenSSH, en procédant comme suit:

  1. Ajoutez une clé SSH à la VM si vous ne l'avez pas déjà fait.
  2. Dans la console Google Cloud, accédez à la page Instances de VM et recherchez l'adresse IP externe de la VM de l'hôte bastion.

    Accéder à la page "Instances de VM"

  3. Ouvrez un terminal sur votre poste de travail.
  4. Connectez-vous à la VM de l'hôte bastion en exécutant la commande suivante:

    ssh -A -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Remplacez les éléments suivants :

    • PATH_TO_PRIVATE_KEY : chemin d'accès au fichier de clé SSH privée correspondant à la clé publique que vous avez ajoutée à la VM.
    • USERNAME : votre nom d'utilisateur. 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. Par exemple, cloudysanfrancisco_example_com ou cloudysanfrancisco.
    • EXTERNAL_IP : adresse IP externe de la VM.
  5. À partir de la VM de l'hôte bastion, connectez-vous via l'adresse IP interne d'une VM à l'aide de la commande suivante:

    ssh USERNAME@INTERNAL_IP

    Remplacez les éléments suivants :

    • USERNAME : votre nom d'utilisateur. 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. Par exemple, cloudysanfrancisco_example_com ou cloudysanfrancisco.
    • INTERNAL_IP : adresse IP interne de la VM.

Application PuTTY

Connectez-vous à une VM via un hôte bastion à l'aide de PuTTY en procédant comme suit:

  1. Ajoutez une clé SSH à la VM de l'hôte bastion, si ce n'est pas déjà fait.
  2. Si l'application PuTTY n'est pas déjà installée sur votre poste de travail, téléchargez les fichiers de package PuTTY.
  3. Dans la console Google Cloud, accédez à la page Instances de VM et recherchez l'adresse IP interne de la VM à laquelle vous souhaitez vous connecter.

    Accéder à la page "Instances de VM"

  4. Ouvrez l'application PuTTY. Une fenêtre de configuration de connexion s'affiche.
  5. Dans le champ Host Name, saisissez le nom d'utilisateur associé à la clé SSH et l'adresse IP externe de la VM à laquelle vous souhaitez vous connecter. Utilisez le format suivant :

    USERNAME@EXTERNAL_IP

    Remplacez les éléments suivants :

    • USERNAME : Votre nom d'utilisateur. 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. Par exemple, cloudysanfrancisco_example_com ou cloudysanfrancisco.
    • EXTERNAL_IP : adresse IP externe de la VM.
  6. Dans le menu Catégorie, accédez à Connexion > SSH > Auth.
  7. Dans le champ Private key file for authentication (Fichier de clé privée pour l'authentification), sélectionnez le fichier de clé SSH privée correspondant à la clé publique que vous avez ajoutée à la VM.
  8. Dans la section Paramètres d'authentification, sélectionnez Autoriser le transfert d'agent.
  9. Cliquez sur Ouvrir pour vous connecter à la VM de l'hôte bastion.
  10. À partir de la VM de l'hôte bastion, connectez-vous via l'adresse IP interne d'une VM à l'aide de la commande suivante:

    ssh USERNAME@INTERNAL_IP

    Remplacez les éléments suivants :

    • USERNAME : votre nom d'utilisateur. 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. Par exemple, cloudysanfrancisco_example_com ou cloudysanfrancisco.
    • INTERNAL_IP : adresse IP interne de la VM.

Dépannage

Pour connaître les méthodes de diagnostic et de résolution des échecs de connexion SSH, consultez la page Résoudre les problèmes liés à SSH.

Étapes suivantes