Dans mon dernier article, j'ai exploré les bases de la commande ssh et ses options utiles. Pourtant, saisir chaque adresse IP, nom d'utilisateur et numéro de port à chaque fois reste un vrai casse-tête.
C'est là qu'intervient le fichier SSH Config : il vous permet de stocker vos connexions fréquentes comme des favoris et de les appeler via un simple alias.
Je me souviens, en tant que débutant complet, de m'être demandé : « Comment réécrire cette commande SSH compliquée à chaque fois ? » J'ai alors enregistré mes commandes fréquentes dans .bashrc sous forme d'alias. Quand j'ai découvert le fichier config, j'ai réalisé à quel point ma méthode était naïve.

Qu'est-ce que le fichier SSH Config ?
Le fichier SSH Config est un fichier de configuration qui personnalise le comportement du client SSH. En y enregistrant les informations de connexion (nom d'utilisateur, port, clé privée, etc.) pour chaque hôte, vous pouvez vous connecter simplement en tapant un alias.
- Emplacement : généralement dans le répertoire personnel, sous
.ssh/config. Si vous venez d'installer SSH, le fichier n'existe pas encore ; il faut le créer. - Création : si
~/.ssh/confign'existe pas, créez-le et assurez-vous que ses permissions sont à 600.
touch ~/.ssh/config
chmod 600 ~/.ssh/config # obligatoire pour la sécurité !
Règles de rédaction du fichier config
Le fichier est un simple texte. Chaque hôte est défini par un bloc commençant par Host.
Structure de base
Host [alias]
[option1] [valeur1]
[option2] [valeur2]
...
Host [alias]: démarre le bloc et définit l'alias que vous utiliserez. Vous pouvez aussi mettre l'adresse IP ou le nom de domaine directement, ou même des caractères génériques (*,?).- Indentation : les options sous
Hostdoivent être indentées. Espaces ou tabulations sont acceptés, mais restez cohérent. - Options : listez ici les options SSH que vous souhaitez appliquer. Elles correspondent aux mêmes paramètres que vous utilisez avec
ssh -option.
Options courantes
| Option | Description | Exemple |
|---|---|---|
HostName |
Adresse IP ou nom de domaine réel | 192.168.1.100 ou example.com |
User |
Nom d'utilisateur distant | ubuntu, ec2-user, root |
Port |
Port SSH distant (22 par défaut) | 2222 |
IdentityFile |
Chemin vers la clé privée | ~/.ssh/id_ed25519_myserver |
ForwardAgent |
Activer le transfert d'agent | yes |
StrictHostKeyChecking |
Vérification stricte de la clé hôte | no (pour tests initiaux) |
PortForwarding |
Autoriser le transfert de port | yes |
LocalForward |
Transfert de port local (-L) |
8080 localhost:80 |
ServerAliveInterval |
Intervalle de vérification du serveur (s) | 60 |
ServerAliveCountMax |
Nombre de tentatives avant déconnexion | 3 |
Exemple de configuration SSH
Ajoutons quelques serveurs que je consulte souvent dans ~/.ssh/config.
# Premier serveur : serveur web (alias : webserver)
Host webserver
HostName 192.168.1.100
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_webserver # clé dédiée
# Deuxième serveur : serveur de développement (alias : devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev # clé RSA
# Transfert de port local 8000 vers le port 80 distant
LocalForward 8000 localhost:80
# Troisième serveur : tous les EC2 AWS (alias : aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
# Garder la connexion vivante
ServerAliveInterval 60
ServerAliveCountMax 3
# Configuration générale pour une plage IP (alias : 10.0.0.*)
Host 10.0.0.*
User admin
Port 22
Explications :
webserver: se connecte à192.168.1.100en tant qu'ubuntusur le port2222avec la cléid_ed25519_webserver.devbox: se connecte àdev.example.comen tant quedeveloperavec la cléid_rsa_devet transfère le port local8000vers le port80distant.aws-*: applique les mêmes paramètres à tout alias commençant paraws-. Par exemple,ssh aws-produtilisera automatiquementUseretIdentityFiledéfinis.10.0.0.*: pour toute adresse IP de la forme10.0.0.x, l'utilisateuradminet le port22sont appliqués.
En pratique, j'utilise rarement les caractères génériques. Je préfère un mappage 1:1 pour une gestion plus simple. Quand je dois accéder au même serveur avec des paramètres différents, j'ajoute un alias supplémentaire, comme un menu de restaurant.

Utilisation du fichier config
Une fois le fichier configuré, la connexion devient un jeu d'enfant. Essayons avec l'exemple ci-dessus.
1. Connexion via alias
ssh webserver
Enter passphrase for key '/home/youruser/.ssh/id_ed25519_webserver':
ubuntu@webserver-ip:~ $
Cette commande équivaut à
ssh -p 2222 -i ~/.ssh/id_ed25519_webserver ubuntu@192.168.1.100.
ssh devbox
Enter passphrase for key '/home/youruser/.ssh/id_rsa_dev':
developer@devbox-domain:~ $
Le port local
8000est automatiquement transféré vers le port80distant.
Avantages de l'utilisation du fichier config
- Confort : remplace les longues commandes SSH par de simples alias, réduisant les erreurs de saisie.
- Productivité : accédez rapidement aux serveurs fréquemment utilisés.
- Gestion centralisée : toutes les configurations sont regroupées en un seul fichier, facilitant la maintenance.
- Sécurité : évite d'exposer les clés privées dans l'historique des commandes.
En conclusion
Le fichier SSH Config est indispensable pour tout développeur ou administrateur système utilisant SSH. En l'utilisant, vous simplifierez et sécuriserez votre expérience de connexion. Ouvrez ~/.ssh/config, créez vos alias et profitez d'une gestion fluide de vos serveurs.
N'hésitez pas à explorer d'autres articles sur SSH dans la barre de recherche à droite. Si vous avez des questions, laissez un commentaire !