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…