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
- Man page de ssh_config, en français
- Tout un tutoriel sur SSH
- Doc Ubuntu sur SSH, décidément la communauté d’Ubuntu est toujours aussi active.
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…






