Outils pour utilisateurs

Outils du site


personnaliser_le_client_ssh

tag_ssh_configuration_ubuntu_debian

Personnaliser le client SSH

SSH est un outil très pratique dans le monde de Linux. Il permet de faire beaucoup de choses entre machines via la ligne de commande, mais également via des interfaces graphiques grâce au X forwarding. On peut aussi faire des translation de port avec le port forwarding tout en restant sécurisé et crypté par la connexion SSH, sans oublier l'authentification par clé publique et privée et la compression des données.

Mais lorsque l'on collectionne les serveurs et les comptes utilisateurs cela devient vite problématique de savoir quelle clé utiliser, quel nom d'utilisateur pour s'identifier sur quel serveur…

Il convient donc de définir des alias pour chaque serveur en spécifiant automatique les choses qui ne changeront pas, et cela est possible grâce au fichier ~/.ssh/config.

Voyons ensemble ce qui est possible de faire dans ce fichier, pour que cela fonctionne il suffit tout simplement de coller les exemples dans votre fichier ~/.ssh/config.

Si vous êtes administrateur d'un parc de serveur, vous pouvez également utiliser le fichier /etc/ssh/ssh_config pour mettre les paramètres à la disposition de tout les utilisateurs de la machine.

Un exemple simple

La plupart du temps pour se connecter sur une machine nous faisons :

$ ssh utilisateur@serveur.exemple.fr

Pour effectuer la même chose nous pouvons ajouter ceci au fichier ~/.ssh/config :

Host serveur
Hostname serveur.exemple.fr
User utilisateur

Il suffit ensuite de lancer la commande suivante dans une ligne de commande :

$ ssh serveur

S'authentifier avec une clé publique/privée

Par défaut, SSH cherche le fichier ~/.ssh/id_rsa ou ~/.ssh/id_dsa pour vous identifier sur un serveur. Mais si vous devez travailler avec plusieurs clés différentes, cela devient vite lassant de devoir spécifier le chemin vers le fichier par l'option -i. Encore une fois la configuration du fichier ~/.ssh/config va nous être très utile. Si nous souhaitons faire ceci :

$ ssh -i ~/.ssh/id_rsa_serveur_toto utilisateur@toto.exemple.fr

Il suffit d'ajouter ceci dans le fichier ~/.ssh/config :

Host toto
Hostname toto.exemple.fr
User utilisateur
IdentityFile ~/.ssh/id_rsa_serveur_toto

Au final, il suffit simplement de taper :

$ ssh toto

Transfert de port

Il est possible en ssh de faire des transferts de port, pour cela il faut lancer cette commande :

$ ssh -L 9000:localhost:80 -i .ssh/id_rsa_serveur utilisateur@serveur.exemple.fr

En mettant ceci dans le fichier ~/.ssh/config :

Host serveur
Hostname serveur.exemple.fr
User utilisateur
IdentityFile ~/.ssh/id_rsa_serveur
Localforward 9000 127.0.0.1:80

pour au final taper ceci :

$ ssh serveur

Plus d'options

Les 3 exemples ci-dessus présentent les options les plus utiles pour le client SSH mais beaucoup d'autres existent et peut être certaines que vous avez l'habitude d'utiliser. Pour connaître la façon d'ajouter votre option favorite dans le fichier ~/.ssh/config n'hésitez pas à consulter le man :

$ man ssh_config
personnaliser_le_client_ssh.txt · Dernière modification: 19/04/2009 16:43 (modification externe)