Gérer efficacement plusieurs connexions SSH vers AWS EC2

Gérer efficacement plusieurs connexions SSH vers AWS EC2

Quand on commence à gérer plusieurs instances AWS EC2, tout semble simple au début. Une clé privée, une IP publique, une commande SSH. Puis le nombre d’instances augmente. Environnement de développement, staging, production. Plusieurs clés. Plusieurs utilisateurs. Parfois plusieurs comptes AWS.

Et là, les erreurs commencent. Mauvaise clé. Mauvaise instance. Commande SSH interminable copiée-collée depuis l’historique.

Dans cet article, je te montre comment structurer proprement ton accès SSH vers tes instances EC2 en utilisant trois outils simples mais puissants : le fichier de configuration SSH, l’agent SSH et tmux. L’objectif est clair : gagner du temps, réduire les erreurs et travailler de manière plus fluide.

Utiliser le fichier de configuration SSH

La plupart des développeurs se connectent encore à leurs instances avec une commande longue du type :

ssh -i my-key.pem ubuntu@44.xxx.xxx.xxx

Répéter cela plusieurs fois par jour est non seulement fastidieux, mais aussi source d’erreurs. Le fichier ~/.ssh/config permet de créer des alias simples et lisibles.

Étape 1 : Ouvrir ou créer le fichier de configuration

Commence par ouvrir le fichier. S’il n’existe pas, il sera créé automatiquement.

nano ~/.ssh/config

Étape 2 : Déclarer tes instances EC2

Dans ce fichier, tu peux définir un alias par instance. Chaque bloc correspond à un environnement.

# Instance de production
Host ec2-production
    HostName 44.204.XXX.XXX
    User ubuntu
    IdentityFile ~/.ssh/my-prod-key.pem

# Instance de staging
Host ec2-staging
    HostName 44.216.XXX.XXX
    User ubuntu
    IdentityFile ~/.ssh/my-staging-key.pem

# Instance de développement
Host ec2-dev
    HostName 44.14.XXX.XXX
    User ubuntu
    IdentityFile ~/.ssh/my-dev-key.pem

À partir de maintenant, plus besoin de retenir les adresses IP ni les chemins des clés privées.

Étape 3 : Sécuriser le fichier

SSH exige des permissions strictes sur les fichiers sensibles. Applique les permissions suivantes :

chmod 600 ~/.ssh/config

Étape 4 : Se connecter en une seule commande

Tu peux désormais te connecter simplement avec :

ssh ec2-production
ssh ec2-staging
ssh ec2-dev

Le gain de confort est immédiat. Les commandes deviennent lisibles et cohérentes.

Utiliser l’agent SSH pour gérer les clés

Lorsque tu gères plusieurs clés privées au format .pem, tu dois normalement les spécifier explicitement ou entrer des phrases secrètes à répétition. L’agent SSH simplifie cette gestion en gardant les clés chargées en mémoire pendant ta session.

Étape 1 : Démarrer l’agent SSH

eval "$(ssh-agent -s)"

Cette commande démarre un processus en arrière-plan chargé de gérer l’authentification.

Étape 2 : Ajouter les clés privées

Ensuite, ajoute tes clés une seule fois :

ssh-add ~/.ssh/my-prod-key.pem
ssh-add ~/.ssh/my-staging-key.pem
ssh-add ~/.ssh/my-dev-key.pem

Une fois chargées, les connexions SSH se feront sans redemander la clé ou la phrase secrète à chaque fois. C’est particulièrement utile quand tu travailles longtemps sur plusieurs environnements.

Automatiser et organiser ses sessions avec tmux

Quand on passe d’une instance EC2 à une autre toute la journée, ouvrir et fermer des terminaux devient vite désordonné. tmux permet de gérer plusieurs sessions persistantes dans un seul terminal.

Étape 1 : Installer tmux

Sur Debian ou Ubuntu :

sudo apt install tmux -y

Étape 2 : Créer des sessions SSH persistantes

Tu peux créer des sessions dédiées à chaque environnement :

tmux new-session -s prod -d "ssh ec2-production"
tmux new-session -s staging -d "ssh ec2-staging"
tmux new-session -s dev -d "ssh ec2-dev"

Chaque session tourne en arrière-plan. Même si ta connexion réseau coupe, la session peut rester active côté serveur.

Étape 3 : Basculer entre les sessions

Pour te connecter à une session existante :

tmux attach -t prod

Pour détacher une session sans la fermer, utilise la combinaison :

Ctrl + B puis D

Cette approche est extrêmement pratique pour garder des logs ouverts en production tout en travaillant sur un environnement de test.

Pourquoi cette organisation change vraiment la donne

En combinant ces trois éléments, tu obtiens une gestion propre et professionnelle de tes accès SSH :

Le fichier de configuration rend les connexions lisibles et cohérentes. L’agent SSH supprime les frictions liées aux clés multiples. tmux permet de structurer ton travail et d’éviter la dispersion des terminaux.

Quand on gère plusieurs instances AWS EC2 au quotidien, ces optimisations font une vraie différence. On réduit les erreurs humaines, on gagne du temps et on améliore sa productivité sans ajouter de complexité inutile.

Ce sont des pratiques simples, mais elles transforment rapidement ta manière de travailler avec l’infrastructure.

Partager cet article :