Fichier de configuration SSH

Publié dans Geekeries | Marqué avec , , , ,
Share

SSH est tout de même un protocole vraiment formidable pour accéder à un serveur distant. Une petite ligne de commande, un mot de passe (et/ou une clef publique) et hop, c’est comme si on était sur la machine qui se situe parfois à je ne sais quelle distance de nous, le tout sécurisé ! Que demander de plus ?
Cela dit, si vous êtes comme moi, vous en avez peut-être légèrement marre de taper la ligne de commande de connexion :
ssh username@monhostquiestparfoisuneadresseIPcompliquee
Ou pire s’il faut préciser une clef DSA ou RSA :
ssh -i cheminversmaclefengeneralpastrescourt/maclef username@monhostquiestparfoisuneadresseIPcompliquee

Heureusement on peut configurer sa machine (celle sur laquelle on écrit la ligne de commande ssh ...) pour nous faciliter la tâche. Sous Windows ou Linux, il suffit de créer (ou modifier) un fichier nommé config dans ~/.ssh/ (le tild ~ représente le répertoire de l’utilisateur. En vrai, sur mon Windows, j’ai dû le mettre dans C:/.ssh/config, mais j’ai installé mon Putty un peu bizarrement.) et de créer un alias pour tous les serveurs auxquels on souhaite se connecter facilement :

Host alias
	Hostname monhostquiestparfoisuneadresseIPcompliquee
	User username
Host autreServeur
	Hostname monAutreServeur
	User monusername

Et avec ça, on n’a plus qu’à écrire : ssh alias ou ssh autreServeur pour se connecter à nos deux serveurs ! Ce qui est tout de même bien plus agréable, non ?
Pour préciser le chemin vers une clef publique (DSA ou RSA) :

Host monServeur1
	Hostname serveur1
	User moi
	IdentityFile C:/Documents and Settings/moi/.ssh/cle_dsa

Pour se connecter en SSH derrière un proxy HTTP :

Host monServeur1
	Hostname serveur1
	User moi
	ProxyCommand connect-proxy -H adresse.du_proxy:port %h %p

Bien sûr, il n’est pas obligatoire de préciser « Hostname » ou « User », Si je veux simplement configurer le chemin vers mon fichier contenant une clef publique, il me suffit d’utiliser directement le nom du serveur après « Host » et de préciser « IdentifyFile ». Comme suit :

Host serveur1
	IdentityFile C:/Documents and Settings/moi/.ssh/cle_dsa

Du coup, à chaque fois que je tenterai de me connecter au serveur « serveur1 », la clef publique sera automatiquement utilisée.

Bref, ce petit fichier de configuration, rapide à remplir, peut faire gagner pas mal de temps. A noter que sous Linux, on peut créer le fichier /etc/ssh/ssh_config avec le même contenu, ce qui aura pour effet de rendre ces paramètres accessibles à tous les utilisateurs.

On en parle ailleurs

A noter

Je viens de faire un test des plus bizarres. Sur un serveur, lorsque j’écris IdentityFile "C:/Documents and Settings/moi/.ssh/cle_dsa", ma clef est bien sauvegardé dans le fichier known_hosts, mais je ne peux accéder au serveur. Par contre, si j’écris IdentityFile C:/Documents and Settings/moi/.ssh/cle_dsa, ça fonctionne…

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *