Dans mon article précédent, 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édiger cette commande ssh compliquée à chaque fois ? » J'ai alors enregistré mes commandes les plus utilisées dans mon .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é, 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 sont600.
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, et les caractères génériques (*,?) sont autorisés.- Indentation : les options sous
Hostdoivent être indentées (espaces ou tabulations, mais cohérentes). - Options : elles correspondent aux paramètres que vous utilisez habituellement 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 des clés d'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 courants à ~/.ssh/config.
# Serveur web (alias : webserver)
Host webserver
HostName 192.168.1.100
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_webserver
# Serveur de développement (alias : devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev
LocalForward 8000 localhost:80
# Tous les serveurs EC2 AWS (alias : aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
ServerAliveInterval 60
ServerAliveCountMax 3
# Réseau 10.0.0.* (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 forward le port local8000vers le port80distant.aws-*: applique les mêmes paramètres à tout alias commençant paraws-(ex :aws-prod,aws-dev).10.0.0.*: appliqueadminet le port22à toute adresse du sous‑réseau10.0.0.x.
En pratique, j'utilise rarement les jokers. Je préfère un mapping 1:1 pour une gestion plus simple, mais je garde la possibilité d'ajouter un alias supplémentaire pour un même serveur avec des paramètres différents.

Utilisation du fichier config
Une fois le fichier configuré, la connexion devient un jeu d'enfant.
1. Connexion par 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 forwardé vers le port80distant.
Avantages de l'utilisation du fichier config
- Simplicité : remplace des commandes longues par de courts alias, réduisant les erreurs de saisie.
- Productivité : passez rapidement d'un serveur à l'autre.
- Gestion centralisée : modifiez un seul fichier pour mettre à jour les adresses IP, clés, etc.
- Sécurité : évitez 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. Il rend vos connexions plus rapides, plus sûres et plus faciles à gérer. Ouvrez ~/.ssh/config, créez vos alias et profitez d'une expérience SSH simplifiée !
N'hésitez pas à explorer d'autres articles sur SSH dans la barre de recherche à droite : tapez « ssh » pour découvrir plus de ressources.
Des questions ? Laissez un commentaire !