Comment résoudre les problèmes d'accès à mon instance EC2 à l'aide d'une connexion SSH via un hôte bastion ?

Date de la dernière mise à jour : 14/10/2021

Je rencontre des difficultés à me connecter à mon instance Amazon Elastic Compute Cloud (Amazon EC2) à l'aide d'une connexion SSH via un hôte bastion. Comment puis-je résoudre ce problème ?

Brève description

Pour résoudre les problèmes de connexion à une instance EC2 via SSH à l'aide d'un hôte bastion, procédez comme suit :

  1. Configurez le transfert de l'agent SSH pour qu'il se connecte à l'hôte bastion depuis votre machine locale.
  2. Connectez-vous à votre instance EC2 à partir de l'hôte bastion avec la messagerie verbeuse activée.
  3. Utilisez les messages de sortie du client SSH pour identifier et résoudre les problèmes. Commencez par dépanner de la connexion de votre machine locale à l'hôte bastion. Puis dépannez la connexion entre l'hôte bastion et l'instance EC2.

Solution

Configurez le transfert de l'agent SSH pour vous connecter à l'hôte bastion depuis votre machine locale.

1.    Ajoutez une ou plusieurs clés privées de votre instance EC2 et de votre hôte bastion à ssh-agent sur votre ordinateur local. Dans l'exemple de commande suivant, remplacez private-key.pem par le nom de votre clé privée.

$ ssh-add private-key.pem

    Exécutez la commande suivante pour vérifier que les clés sont disponibles pour ssh-agent :

$ ssh-add -L

2.    Exécutez la commande suivante pour vous connecter à l'hôte bastion à l'aide de l'option -A avec la messagerie verbeuse activée. Dans l'exemple de commande suivant, remplacez ec2-user par votre nom d'utilisateur. Remplacez 192.0.2.0 par l'adresse IP publique appropriée pour votre hôte bastion. Vous pouvez également utiliser l'entrée DNS publique au lieu de l'adresse IP publique.

$ ssh -v –A ec2-user@192.0.2.0

Important : L'option -A permet le transfert de ssh-agent. Le transfert d'agent doit être utilisé uniquement pour le dépannage. Le transfert permet à l'agent ssh-agent local de répondre au défi de la clé publique, notamment lorsque vous vous connectez de votre hôte bastion à votre instance EC2. Lorsque vous configurez le transfert d'agent, un fichier socket est créé sur l'hôte bastion. Le fichier socket agit comme mécanisme qui transmet la clé à votre instance EC2. Un autre utilisateur de l'hôte bastion ayant la possibilité de modifier des fichiers pourrait utiliser cette clé pour s'authentifier comme vous. Lorsque vous vous connectez régulièrement à votre instance à l'aide d'un hôte bastion (en dehors du dépannage), utilisez ProxyCommand ou une méthode similaire.

Connectez-vous à votre instance EC2 à partir de l'hôte bastion, avec la messagerie verbeuse activée.

Après la connexion à l'hôte bastion, exécutez la commande suivante pour vous connecter à votre instance EC2 à l'aide de SSH avec messagerie en mode verbeux activé. Dans l'exemple de commande suivant, remplacez ec2-user par votre nom d'utilisateur. Remplacez 192.0.2.0 par l'adresse IP publique appropriée pour votre hôte bastion. Vous pouvez également utiliser l'entrée DNS publique au lieu de l'adresse IP publique.

$ ssh -v ec2-user@192.0.2.0

Remarque : Vous n'avez pas besoin de fournir explicitement une clé dans les deux commandes précédentes. ssh-agent essaie séquentiellement toutes les clés chargées dans l'agent jusqu'à ce qu'elles réussissent. Les instances arrêtent la connexion après cinq tentatives de connexion ayant échoué. Par conséquent, assurez-vous que l'agent dispose de cinq clés ou moins. Chaque administrateur doit avoir une clé, ce qui est rarement un problème pour la plupart des déploiements. Pour plus de détails sur la gestion des clés dans ssh-agent, exécutez la commande man ssh-agent.

Dépannage de la connexion de votre machine locale à l'hôte bastion

Si vous rencontrez des problèmes de connexion à l'hôte bastion à partir de votre machine locale, procédez comme suit :

  • Vérifiez que vous avez correctement ajouté la clé privée de l'hôte bastion à l'agent SSH sur votre machine locale. Cette procédure est illustrée à l'étape 1.
  • Vérifiez que ssh-add -L renvoie cinq clés ou moins.
  • Si vous ne parvenez toujours pas à vous connecter à l'hôte bastion, utilisez les messages de sortie obtenus à partir de la messagerie verbeuse du client SSH pour identifier le message d'erreur. En fonction du message d'erreur reçu, reportez-vous à l'étape 2 de la section « Comment résoudre les problèmes de connexion à mon instance Linux Amazon EC2 à l'aide de SSH ? » pour résoudre le problème.

Dépannage de la connexion entre l'hôte bastion et votre instance EC2

Si vous rencontrez des problèmes de connexion à votre instance EC2 à partir de l'hôte bastion, procédez comme suit :

  • Vérifiez que vous avez correctement ajouté la clé privée de votre instance EC2 à l'agent SSH sur votre ordinateur local. Vous devrez peut-être vérifier ceci si la clé est différente de la clé privée de votre hôte bastion.
  • Vérifiez que ssh-add -L renvoie cinq clés ou moins.
  • Si vous ne parvenez toujours pas à vous connecter à l'hôte bastion, utilisez les messages de sortie obtenus à partir de la messagerie verbeuse du client SSH pour identifier le message d'erreur. En fonction du message d'erreur reçu, reportez-vous à l'étape 2 de la section « Comment résoudre les problèmes de connexion à mon instance Linux Amazon EC2 à l'aide de SSH ? » pour résoudre le problème.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?