SSH : Configuration du client
SSH est LA solution de contrôle à distance pour les machines (stations de travail comme serveurs) qui tournent un OS Unix ou Linux.
On va donc voir comment se simplifier la vie avec tout ces accès.
La configuration du client peut se faire soit globalement pour la machine, soit spécifiquement pour chaque utilisateur, les fichiers étant les mêmes on ne va pas les traiter séparément, c'est à l'utilisation que vous choisirez quelles informations doivent être locales/globales.
Fichier de configuration
<file>
- Mes serveurs #
- Ne pas vérifier les hôtes
- Nom d'utilisateur par défaut
Host *.exemple.loc *.exemple.net StrictHostKeyChecking no User username
- Accès à GitLab uniquement
Host git git.exemple.net
Hostname git.exemple.net ClearAllForwardings yes
ForwardAgent no ForwardX11 no ForwardX11Trusted no
- Accès aux VMs Virtualbox
Host vm*
Hostname port001.exemple.loc
Host vm0002* Port 10023 User root
Host vm0001* Port 10022 User root
- Autres
Host home srv srv.exemple.net Hostname srv.exemple.net User root
Host dedie dedie.exemple.net Hostname dedie.exemple.net User root
Host tv tv.exemple.loc Hostname tv.exemple.loc User root
Host room room.exemple.loc Hostname room.exemple.loc User root
- Configuration par défaut
Host * ForwardAgent yes ForwardX11 yes ForwardX11Trusted yes
- Ajoute le domaine exemple.loc si un nom court est spécifié
Match exec "sh -c '! isfqdn %h'"
Hostname %h.exemple.loc
</file>
Scripts Annexes
isfqdn est un script bash très simple, il permet de savoir si le nom d'hôte passé est un FQDN ou simplement un nom court. Le script renvoi 0 pour un FQDN et 1 pour un nom court. L'utilisation d'un script externe simplifie beaucoup la syntaxe de la ligne dans le fichier.
Pour ma part je l'ai placé dans un dossier bin dans le home de l'utilisateur. Il ne faut par contre pas oublier de s'assurer que ce dossier est bien dans la variable PATH.
#!/bin/bash
TMP=$(echo $1 | grep -P '\.')
EXT=$?
exit $EXT