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 Choisir une option de connexion pour les VM internes uniquement.
Systèmes d'exploitation compatibles
Compute Engine accepte ces méthodes de connexion pour toutes les images Linux publiques. 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 VPC cible pour agir en tant qu'hôte bastion.
Console
Pour créer une VM d'hôte bastion, procédez comme suit :
Accédez à la page Créer une instance dans la console Google Cloud .
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.Disque de démarrage > Système d'exploitation : tout système d'exploitation Linux.
Développez la section Options avancées et procédez comme suit :
Dans la section Interfaces réseau, sélectionnez le même réseau et sous-réseau VPC que la VM cible.
Pour Adresse IPv4 externe, sélectionnez Éphémère.
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 :
-
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 de shell dans lequel la Google Cloud CLI est déjà installée, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.
Créez la VM de l'hôte bastion en exécutant la commande suivante:
gcloud compute instances create BASTION_NAME \ --zone=ZONE \ --machine-type=e2-micro \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --network-interface=subnet=SUBNET
Remplacez les éléments suivants :
BASTION_NAME: nom de la VM hôte bastion.ZONE: zone de la VM d'hôte bastion.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 réseau VPC par défaut, définissezSUBNETsurdefault.
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 via un hôte bastion à l'aide de SSH et en exécutant la commande gcloud compute ssh :
Connectez-vous à la VM de l'hôte bastion en exécutant la commande suivante:
gcloud compute ssh BASTION_NAME \ --project=PROJECT_ID \ --zone=ZONERemplacez les éléments suivants :
BASTION_NAME: nom de la VM hôte bastion.PROJECT_ID: ID du projet contenant la VM hôte bastion.ZONE: nom de la zone dans laquelle se trouve la VM hôte bastion.
À partir de la VM de l'hôte bastion, connectez-vous à la VM cible via son adresse IP interne à l'aide de l' option
--internal-ip:gcloud compute ssh INSTANCE_NAME \ --zone=TARGET_ZONE \ --internal-ipRemplacez les éléments suivants :
INSTANCE_NAME: nom de la VM à laquelle vous souhaitez vous connecter.TARGET_ZONE: nom de la zone dans laquelle se trouve la VM cible.
Client OpenSSH
Pour vous connecter à une VM via un hôte bastion à partir d'un client OpenSSH, procédez comme suit :
- Si vous n'avez pas encore ajouté de clé SSH, ajoutez-en une à la VM de l'hôte bastion et à la VM cible.
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 et l'adresse IP interne de la VM à laquelle vous souhaitez vous connecter.
- Ouvrez un terminal sur votre poste de travail.
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, par exemple~/.ssh/my-ssh-keyou~/.ssh/google_compute_enginesi la Google Cloud CLI a généré la clé.USERNAME: nom d'utilisateur est celui que vous avez spécifié lorsque vous avez créé la clé SSH.-
EXTERNAL_IP: adresse IP externe de la VM hôte bastion.
À 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: nom d'utilisateur est celui que vous avez spécifié lorsque vous avez créé la clé SSH.INTERNAL_IP: adresse IP interne de la VM.
Application PuTTY
Pour vous connecter à une VM via un hôte bastion à l'aide de PuTTY, procédez comme suit :
- Si vous n'avez pas encore ajouté de clé SSH, ajoutez-en une à la VM de l'hôte bastion et à la VM cible.
- Si l'application PuTTY n'est pas déjà installée sur votre poste de travail, téléchargez les fichiers de package PuTTY.
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 et l'adresse IP interne de la VM à laquelle vous souhaitez vous connecter.
- Ouvrez l'application PuTTY. Une fenêtre de configuration de connexion s'affiche.
Dans le champ Host Name (or IP address) (Nom d'hôte (ou adresse IP)), saisissez le nom d'utilisateur associé à la clé SSH et l'adresse IP externe de la VM d'hôte bastion. Utilisez le format suivant :
USERNAME@EXTERNAL_IP
Remplacez les éléments suivants :
USERNAME: nom d'utilisateur est celui que vous avez spécifié lorsque vous avez créé la clé SSH.-
EXTERNAL_IP: adresse IP externe de la VM hôte bastion.
- Dans le menu Catégorie, accédez à Connexion > SSH > Auth > Identifiants (ou Connexion > SSH > Auth dans les versions de PuTTY antérieures à la version 0.78).
- Dans le champ Fichier de clé privée pour l'authentification, cliquez sur Parcourir et sélectionnez le fichier de clé SSH privée (
.ppk) correspondant à la clé publique que vous avez ajoutée à la VM. - Dans le menu Catégorie, accédez à Connexion > SSH > Auth, puis dans la section Paramètres d'authentification, sélectionnez Autoriser le transfert d'agent.
- Cliquez sur Ouvrir pour vous connecter à la VM de l'hôte bastion.
À 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: nom d'utilisateur est celui que vous avez spécifié lorsque vous avez créé la clé SSH.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.
Étape suivante
- Découvrez comment transférer des fichiers vers des VM.
- Découvrez comment les connexions SSH aux VM Linux fonctionnent sur Compute Engine.