SSH : Configuration du client

De Adadov.net wiki
Aller à : navigation, rechercher
Ecrit Par : Adadov
Warning.png Portée de l'article
Cet article ne traite QUE de la configuration du client SSH.

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

# 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

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