Passer au contenu

Comment utiliser un hôte bastion pour me connecter en toute sécurité à mon instance Linux Amazon EC2 dans un sous-réseau privé ?

Lecture de 5 minute(s)
0

Je souhaite utiliser un hôte bastion pour me connecter à mon instance Linux Amazon Elastic Compute Cloud (Amazon EC2) qui s’exécute dans un sous-réseau privé.

Brève description

Les instances Linux EC2 utilisent des fichiers de paires de clés SSH à la place de noms d'utilisateur et de mots de passe SSH comme méthode d'authentification par défaut. Pour établir une connexion à l’aide d’un hôte bastion, utilisez le transfert ssh-agent sur le client. Le ssh-agent connecte un administrateur du bastion à une autre instance sans qu'il soit nécessaire d'utiliser une clé privée provenant du bastion.

Par défaut, la plupart des distributions Linux et macOS incluent le package openssh-clients qui contient ssh-agent. Pour les distributions Windows, utilisez PuTTY pour vous connecter aux instances Linux et Pageant pour gérer les clés privées. Après avoir installé Pageant, vous pouvez utiliser l’option de transfert d’agent dans PuTTY pour vous connecter à des instances dans des sous-réseaux privés.

Important : Pour maintenir un environnement sécurisé, ne stockez jamais de clés privées sur l’hôte bastion.

Résolution

Remarque : Le ssh-agent s'exécute en mémoire. Vous devez donc répéter les étapes suivantes chaque fois que vous ouvrez une nouvelle session de terminal ou que vous redémarrez votre ordinateur.

Prérequis : Assurez-vous que votre configuration présente les paramètres suivants :

  • L'hôte bastion se trouve dans le sous-réseau public du cloud privé virtuel (VPC).
  • Le groupe de sécurité de l'instance dans le sous-réseau privé autorise les connexions SSH uniquement à partir de l'hôte bastion.
  • Le groupe de sécurité de l'hôte bastion autorise les connexions sur le port TCP/22 uniquement à partir d'adresses IP connues et fiables.

Configurer le transfert ssh-agent sur un client macOS ou Linux

Procédez comme suit :

  1. Exécutez la commande suivante pour démarrer le ssh-agent en arrière-plan.

    eval $(ssh-agent)
  2. Exécutez la commande suivante pour ajouter la clé SSH au ssh-agent :

    ssh-add "/path/to/key.pem"

    Remarque : Remplacez path/to/key par le chemin du fichier .pem sur votre machine locale. Le ssh-agent stocke vos clés SSH en mémoire.

  3. Exécutez la commande suivante pour vérifier que le ssh-agent a stocké la clé :

    ssh-add -l

    Remarque : Vérifiez que la clé apparaît dans la sortie.
    Exemple de sortie :

     # 2048 SHA256:abc123... /home/user/.ssh/my-key.pem (RSA)
  4. Exécutez la commande suivante pour vous connecter à l'hôte bastion avec le transfert ssh-agent activé :

    ssh -A User@Bastion_Host_IP_Address

    Remarque : Remplacez User par votre nom d'utilisateur et Bastion_Host_IP_address par l'adresse IP de votre hôte bastion. Pour afficher le nom d'utilisateur par défaut de votre Amazon Machine Image (AMI), consultez la section Noms d'utilisateur par défaut. Pour utiliser le transfert SSH, utilisez l’indicateur -A plutôt que -i. Avec ssh-agent, SSH utilise automatiquement les clés chargées en mémoire.

  5. Exécutez la commande suivante pour vous connecter à l'instance Linux privée :

    ssh User@Private_instance_IP_address

    Remarque : Remplacez User par votre nom d'utilisateur et Private_instance_IP_address par l'adresse IP de votre instance.

Configurer le transfert d’agent sur un client Windows

Procédez comme suit :

  1. Téléchargez et installez PuTTY, Pageant et PuTTYgen. Pour télécharger les outils, consultez la page Télécharger PuTTY sur le site Web de PuTTY.
  2. Afin de vous connecter à votre instance à l’aide de PuTTY, utilisez PuTTYgen pour convertir votre clé privée du format PEM au format PuTTY.
    Remarque : PuTTY ne peut pas utiliser le format PEM pour les clés SSH.
  3. Choisissez le menu Démarrer, puis ouvrez Pageant.
    Remarque : Par défaut, Pageant s'ouvre en mode réduit dans la zone de notification. Si l’icône Pageant n’apparaît pas dans la zone de notification, utilisez les paramètres de la barre des tâches pour l’ajouter. Pour obtenir des instructions, consultez la page Personnaliser la barre des tâches dans Windows sur le site Web de Microsoft.
  4. Pour ajouter vos clés SSH, ouvrez le menu contextuel (clic droit) de l'icône Pageant, puis sélectionnez Ajouter une clé. Puis, accédez à votre clé privée.
    Remarque : Pour afficher la clé ajoutée, ouvrez le menu contextuel (clic droit) de l'icône Pageant, puis sélectionnez Afficher les clés.
  5. Choisissez le menu Démarrer, puis ouvrez Tous les programmes.
  6. Choisissez PuTTY, puis choisissez PuTTY.
  7. Sous Catégorie, choisissez Session.
  8. Pour Nom d’hôte, entrez user-name@instance-public-dns pour vous connecter à l’aide du nom DNS public de votre instance. Ou saisissez user-name@instance-IPv4-address pour vous connecter avec l’adresse IPv4 de votre instance.
    Remarque : Remplacez user-name par votre nom d'utilisateur, instance-public-dns par le DNS public de votre instance et instance-IPv4-address par l'adresse IPv4 de votre instance.
  9. Configurez les valeurs de Type de connexion et SSH en fonction de vos besoins. Pour Port, entrez 22.
  10. Sous Catégorie, développez Connexion.
  11. Choisissez SSH, puis sélectionnez Authentification.
  12. Choisissez Autoriser le transfert d’agent.
  13. Choisissez Ouvrir.
  14. Pour vous connecter à l’instance, exécutez la commande suivante :
ssh User@Private_instance_IP_address

Remarque : Remplacez User par votre nom d'utilisateur et Private_instance_IP_address par l'adresse IP de votre instance.

AWS OFFICIELA mis à jour il y a 7 mois