Dans le précédent article, nous avons vu les bases de la commande ssh et quelques options très utiles. Mais retaper à chaque fois une adresse IP compliquée, un nom d’utilisateur, un numéro de port, etc., c’est franchement pénible.
Dans ce genre de situation, le fichier de configuration SSH (SSH Config) règle le problème d’un coup. Comme un système de favoris, il vous permet d’enregistrer les informations de connexion pour les serveurs que vous utilisez souvent, puis de vous connecter facilement via un alias.
Et je parle en connaissance de cause. Quand j’étais un « débutant complet » et que je ne savais même pas que ce fichier existait, je me disais souvent : « Mais comment je suis censé retaper cette commande SSH longue et compliquée à chaque fois ? »
Alors j’avais pris un raccourci… pas très glorieux : je copiais la ligne de commande telle quelle et je l’enregistrais comme alias dans .bashrc. Plus tard, quand j’ai enfin appris à utiliser correctement le fichier config, j’ai réalisé à quel point j’avais fait ça de manière brute, maladroite et franchement “pas futée”.

Qu’est-ce qu’un fichier SSH Config ?
Le fichier SSH Config est un fichier de configuration qui permet de personnaliser le comportement du client SSH. Si vous y enregistrez à l’avance les informations de connexion d’un hôte (nom d’utilisateur, port, clé privée à utiliser, etc.), vous pourrez ensuite vous connecter en tapant simplement un alias court.
-
Emplacement : en général, il se trouve dans le dossier
.sshde votre répertoire personnel et s’appelleconfig. Si vous venez d’installer SSH, il est très possible qu’il n’existe pas encore. Dans ce cas, il faut le créer. -
Création du fichier : si
~/.ssh/confign’existe pas, créez-le vous-même. Et surtout, mettez impérativement les permissions à 600.
touch ~/.ssh/config
chmod 600 ~/.ssh/config # Indispensable pour la sécurité !
Règles d’écriture du fichier config
Le fichier config est un simple fichier texte. Chaque configuration d’hôte est écrite sous forme de bloc commençant par le mot-clé Host.
Structure de base
Host [alias]
[option1] [valeur1]
[option2] [valeur2]
...
Host [alias]: indique le début du bloc et définit l’alias que vous utiliserez dans la commandessh. À la place d’un alias, vous pouvez aussi mettre directement l’adresse de l’hôte (IP ou domaine). Les jokers (*,?) sont également possibles.- Indentation : les options sous
Hostdoivent être indentées. Espaces ou tabulations, peu importe — l’essentiel est de rester cohérent. - Options : sous
Host, vous listez différentes options SSH qui s’appliqueront quand vous vous connecterez via cet alias. Ce sont les mêmes options que celles utilisées en ligne de commande avecssh -option.
Options courantes
| Option | Description | Exemple |
HostName |
Adresse IP ou nom de domaine réel du serveur | 192.168.1.100 ou example.com |
User |
Nom d’utilisateur distant | ubuntu, ec2-user, root |
Port |
Port SSH du serveur (22 par défaut) | 2222 |
IdentityFile |
Chemin vers la clé privée à utiliser | ~/.ssh/id_ed25519_myserver |
ForwardAgent |
Activer l’agent forwarding (avec ssh-agent) |
yes |
StrictHostKeyChecking |
Vérification stricte de la clé d’hôte (yes recommandé) |
no (temporaire au début) |
PortForwarding |
Autoriser le port forwarding | yes |
LocalForward |
Port forwarding local (équivalent de -L) |
8080 localhost:80 |
ServerAliveInterval |
Intervalle (s) pour vérifier que la connexion est vivante | 60 (évite les coupures) |
ServerAliveCountMax |
Nombre d’échecs avant coupure | 3 |
Exemple de fichier SSH Config
Ajoutons quelques serveurs fréquemment utilisés 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 au serveur web
# Deuxième serveur : serveur de dev (alias : devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev # Clé RSA
# À la connexion, on redirige le port local 8000 vers le port 80 distant
LocalForward 8000 localhost:80
# Troisième exemple : tous les serveurs AWS EC2 (pattern : aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
# Envoie des keep-alives pour éviter la déconnexion
ServerAliveInterval 60
ServerAliveCountMax 3
# Configuration générale pour une plage d’IP (pattern : 10.0.0.*)
Host 10.0.0.*
User admin
Port 22
Explications :
webserver: connexion à192.168.1.100en tant queubuntu, via le port2222, avec la cléid_ed25519_webserver.devbox: connexion àdev.example.comen tant quedeveloper, avec la cléid_rsa_dev, et redirection du port local 8000 vers le port 80 distant.aws-*: configuration appliquée à tous les alias commençant paraws-(ex.aws-prod,aws-dev). Les optionsUseretIdentityFiles’appliquent automatiquement.HostName, lui, sera interprété commeprodsi vous vous connectez avecaws-prod(et sera utilisé ensuite viassh aws-prod).10.0.0.*: pour les IP au format10.0.0.x, l’utilisateuradminet le port 22 s’appliquent automatiquement.
Pour être honnête, j’ai présenté la méthode wildcard
*surtout pour la culture générale, mais dans la vraie vie je l’utilise très rarement. C’est souvent plus simple à maintenir quand on fait un mapping 1 serveur = 1 bloc de config (1:1).
Et comme il m’arrive d’accéder au même serveur avec des réglages différents, j’ajoute un alias à chaque fois — puis je choisis l’alias comme on choisit un plat sur une carte — et je n’ai plus qu’à “commander” avecssh my-alias.

Comment utiliser le fichier config
Une fois vos réglages enregistrés, la connexion devient beaucoup plus simple. Essayons avec les exemples ci-dessus.
1. Se connecter avec un alias
Il suffit d’exécuter ssh avec l’alias.
- Avec l’alias
webserver:
ssh webserver
Enter passphrase for key '/home/youruser/.ssh/id_ed25519_webserver':
ubuntu@webserver-ip:~ $
En interne, c’est équivalent à :
ssh -p 2222 -i ~/.ssh/id_ed25519_webserver ubuntu@192.168.1.100
- Avec l’alias
devbox:
ssh devbox
Enter passphrase for key '/home/youruser/.ssh/id_rsa_dev':
developer@devbox-domain:~ $
(En même temps, le port local 8000 est redirigé vers le port 80 de
dev.example.com.)
Avantages du fichier config
- Praticité : remplacez des commandes longues et complexes par des alias courts — moins de fautes de frappe, moins de perte de temps.
- Productivité : passer d’un serveur à l’autre devient rapide et fluide.
- Maintenance plus simple : tout est centralisé dans un seul fichier. Par exemple, si l’IP d’un serveur change, vous modifiez uniquement le config.
- Sécurité : vous évitez de laisser des informations sensibles (ex. chemin de clé privée) dans l’historique de commandes.
Pour conclure
Le fichier SSH Config est un outil indispensable pour tous ceux qui utilisent SSH — développeurs comme administrateurs système. Avec lui, votre expérience de connexion devient plus simple, plus rapide et plus propre. Ouvrez ~/.ssh/config et créez vos propres alias !
N’hésitez pas à lire mes autres articles liés à SSH : utilisez la barre de recherche à droite et tapez ssh pour trouver d’autres contenus.
Et si vous avez des questions, laissez un commentaire — je répondrai avec plaisir !
Aucun commentaire.