Dans le précédent article, nous avons examiné les usages de base de la commande ssh
ainsi que quelques options utiles. Cependant, saisir systématiquement des adresses IP, des noms d'utilisateur et des numéros de port complexes peut s'avérer très fastidieux. Dans de telles situations, utiliser le fichier de configuration SSH peut vous faire gagner beaucoup de temps. C'est comme un favoris où vous pouvez sauvegarder les informations de connexion de vos serveurs préférés, vous permettant d'accéder facilement via un alias.
Qu'est-ce qu'un fichier de configuration SSH ?
Le fichier de configuration SSH est un fichier de paramètres qui personnalise le fonctionnement du client SSH. En y enregistrant à l'avance les informations de connexion pour des hôtes spécifiques (nom d'utilisateur, port, fichier de clé à utiliser, etc.), vous pouvez vous connecter ultérieurement en utilisant simplement un court alias.
- Emplacement : Il se trouve généralement dans le dossier
.ssh
de votre répertoire personnel sous le nomconfig
.- Exemple :
~/.ssh/config
- Exemple :
-
Création du fichier : Si le fichier
~/.ssh/config
n'existe pas, vous devez le créer vous-même.bash touch ~/.ssh/config chmod 600 ~/.ssh/config # Accordez les droits de lecture/écriture uniquement au propriétaire pour la sécurité
Règles de rédaction du fichier de configuration
Le fichier de configuration est un fichier texte simple, et les paramètres pour chaque hôte commencent par le mot clé Host
et sont écrits sous forme de blocs.
Structure de base
Host [alias]
[option1] [valeur1]
[option2] [valeur2]
...
-
Host [alias]
: Cela marque le début de ce bloc, où vous définissez l'alias que vous allez utiliser. Cet alias sera utilisé dans la commande SSH. Vous pouvez également mettre directement l'adresse réelle de l'hôte (IP ou domaine). Des caractères génériques (*
,?
) peuvent également être utilisés. -
Indentation : Les options sous
Host
doivent être indentées. Vous pouvez utiliser des espaces ou des tabulations, mais il est recommandé de maintenir la cohérence. -
Options : Sous
Host
, vous allez lister diverses options SSH qui seront appliquées lors de la connexion avec cet alias. Ces options sont identiques à celles que vous avez utilisées précédemment sous le formatssh -option
.
Options couramment utilisées
Option | Description | Valeur d'exemple |
HostName |
Adresse IP ou nom de domaine du serveur auquel vous vous connectez réellement | 192.168.1.100 ou example.com |
User |
Nom du compte utilisateur utilisé pour se connecter au serveur distant | ubuntu , ec2-user , root |
Port |
Numéro de port SSH du serveur distant (par défaut 22) | 2222 |
IdentityFile |
Chemin du fichier de clé privée à utiliser lors de la connexion | ~/.ssh/id_ed25519_myserver |
ForwardAgent |
Activer le transfert d'agent SSH (Agent Forwarding, lorsque ssh-agent est utilisé) |
yes |
StrictHostKeyChecking |
Savoir si la vérification des clés d'hôtes doit être stricte (yes recommandé) |
no (utilisé temporairement lors de tests initiaux) |
PortForwarding |
Permettre ou non le transfert de ports | yes |
LocalForward |
Configuration du transfert de port local (équivalent à -L ) |
8080 localhost:80 |
ServerAliveInterval |
Intervalle pour vérifier si le serveur est toujours actif (en secondes) | 60 (pour éviter les déconnexions) |
ServerAliveCountMax |
Nombre de tentatives avant de déconnecter si le serveur ne répond pas | 3 |
Exemples de rédaction de fichiers de configuration SSH
Ajoutons quelques réglages pour quelques serveurs fréquemment utilisés dans le fichier ~/.ssh/config
.
# Premier serveur : serveur web (alias : webserver)
Host webserver
HostName 192.168.1.100
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_webserver # Utilisation d'une clé spécifique pour le serveur web
# Deuxième serveur : serveur de développement (alias : devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev # Utilisation d'une clé RSA
# Transfert du port local 8000 vers le port 80 du serveur distant
LocalForward 8000 localhost:80
# Troisième serveur : tous les serveurs AWS EC2 (alias : aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
# Envoi régulier de signaux pour éviter les déconnexions
ServerAliveInterval 60
ServerAliveCountMax 3
# Réglage général pour une plage d'IP spécifique (alias : 10.0.0.*)
Host 10.0.0.*
User admin
Port 22
Explication :
-
webserver
: Vous pouvez vous connecter au serveur192.168.1.100
avec l'utilisateurubuntu
, en utilisant le port2222
et la cléid_ed25519_webserver
. -
devbox
: Vous pouvez vous connecter au serveurdev.example.com
avec l'utilisateurdeveloper
en utilisant la cléid_rsa_dev
et transférer le port local 8000 vers le port 80. -
aws-*
: Paramètres applicables à tous les alias commençant paraws-
. Par exemple, si vous vous connectez àaws-prod
ouaws-dev
, les réglages pourUser
etIdentityFile
sont automatiquement appliqués.HostName
est défini commeprod
lorsque vous vous connectez àaws-prod
. -
10.0.0.*
: Lorsque vous vous connectez à une adresse IP de type10.0.0.x
, l'utilisateuradmin
et le port par défaut 22 sont automatiquement appliqués.
Comment utiliser le fichier de configuration
Maintenant que vous avez enregistré les réglages dans le fichier de configuration, il est beaucoup plus facile de se connecter. Essayons avec les exemples ci-dessus ?
1. Connexion avec l'alias
Exécutez la commande SSH en utilisant uniquement l'alias.
- Utilisation de l'alias
webserver
:
ssh webserver
Enter passphrase for key '/home/youruser/.ssh/id_ed25519_webserver':
ubuntu@webserver-ip:~ $
Cette commande fonctionne de manière interne comme `ssh -p 2222 -i ~/.ssh/id_ed25519_webserver ubuntu@192.168.1.100`.
- Utilisation de l'alias
devbox
:
ssh devbox
Enter passphrase for key '/home/youruser/.ssh/id_rsa_dev':
developer@devbox-domain:~ $
(En même temps, se connecter au port local 8000 redirige vers le port 80 de dev.example.com)
- Utilisation de l'alias
aws-prod
(alias générique) :
ssh aws-prod
Enter passphrase for key '/home/youruser/.ssh/aws_ec2_key.pem':
ec2-user@aws-prod-hostname:~ $
Attention : Dans le cas d'un Host
générique sans un HostName
spécifié, le client SSH pourrait interpréter le HostName
comme prod
en l'absence d'autres indications. Pour une utilisation plus claire, il est courant de mapper un alias à HostName prod.example.com
.
Avantages de l'utilisation du fichier de configuration
- Commodité : Remplacez de longues et complexes commandes SSH par des alias courts afin de réduire les erreurs de saisie et de gagner du temps.
- Productivité : Accédez facilement et rapidement aux serveurs fréquemment utilisés pour améliorer l'efficacité des travaux.
- Gestion facile : Centralisez tous les réglages de connexion en un seul endroit pour en faciliter la maintenance. Par exemple, si l'adresse IP d'un serveur change, il suffit de modifier le fichier de configuration.
- Sécurité : Vous n'avez pas besoin de conserver des informations sensibles (par exemple, le chemin du fichier de clé) dans l'historique des commandes.
Conclusion
Le fichier de configuration SSH est un outil essentiel pour chaque développeur et administrateur système utilisant SSH. En l'utilisant, vous pouvez rendre votre expérience de connexion SSH beaucoup plus confortable et efficace. Ouvrez le fichier ~/.ssh/config
et créez vos propres alias !
Consultez également d'autres articles liés à SSH ! Cherchez 'ssh' dans la barre de recherche à droite pour trouver divers articles sur le sujet.
Si vous avez des questions, n'hésitez pas à les poser dans les commentaires !
Aucun commentaire.