Configuration avancée du client OpenSSH sous Linux

closeCet article a été publié il y a 8 ans 9 mois 12 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Quand vous travaillez sous Windows, vous utiliserez certainement PuTTY pour exploiter vos connexions SSH. Il est diablement pratique parce qu’il permet de stocker vos profils, avec des paramètres aussi utiles que le login et le certificat à utiliser pour ledit serveur (entre autres choses).

Sous Linux, et plus précisément avec OpenSSH, on peut aussi faire la même chose, enfin presque. Et vous allez gagner un max de temps et de fluidité.

J’avais déjà présenté une manière de faire des raccourcis SSH dans mon article sur la configuration avancée de Bash (avec les alias). Mais là, on va faire directement appel aux fonctions et fichiers de configuration d’OpenSSH.

Le cadre

Lorsqu’on appelle la commande ssh, elle appliquera quantité de paramètres dans l’ordre suivant :

  1. fichier global /etc/ssh/ssh_config
  2. fichier perso ~/.ssh/config
  3. paramètres en ligne de commande

C’est ce deuxième fichier qui va vous faire gagner du temps, parce que taper à chaque fois les paramètres en ligne de commande, c’est lourd. C’est un fichier texte, tout ce qu’il y a de plus habituel, vous avez donc le choix du mode d’édition. Toutes les modifications que vous lui apportez seront prises en compte immédiatement, pas besoin de redémarrer quoi que ce soit (contrairement au serveur).

La méthode globale

Si vous utilisez toujours le même utilisateur pour vous connecter à vos machines, vous pouvez configurer une méthode « par défaut » convenant à priori à toutes les connexions. Le bloc de texte à ajouter est des plus simples :

L’explication est des plus triviales, juste à remarquer qu’on peut déjà désigner plusieurs clés différentes avec autant de lignes IdentityFile que nécessaires. Attention aussi, les droits d’accès aux fichiers de clés doivent être très restreints (typiquement 600, soit lecture/écriture uniquement pour le propriétaire).

La méthode « par machine »

Pour les machines où les paramètres sont différents, la méthode est pratiquement la même, seulement, vous remplacerez différents paramètres pour les adapter à la machine en question :

Vous pouvez même allez plus loin : si vous avez plusieurs machines sur le même domaine de base, toutes en blabla.seboss666.info par exemple, vous pouvez remplacer le test de l’exemple par un *. Vous pouvez exclure certaines machines de ce « motif » en inscrivant le domaine de la machine avec un ! devant pour indiquer d’exclure cette machine de la règle.

Théoriquement, là encore, si les paramètres sont identiques pour plusieurs serveurs, vous pouvez mettre tous leurs noms à la ligne Host séparés par des espaces, seulement, pour des questions de lisibilité (et surtout de maintenabilité), je conseille de séparer avec un bloc par domaine voire machine.

Un gros gain de temps

Je vous dis pas le temps gagné à ne plus avoir à rentrer un nombre incalculable de choses. Maintenant, quand j’ai à transférer mes « raccourcis », je n’ai plus qu’à copier le fichier de configuration et le dossier qui contient les clés (et souvent, c’est le même !) sur une nouvelle machine et paf, ça fait des Chocapic ! Plus besoin de modifier le fichier bashrc à faire des copier-coller, ça marche quelque soit l’OS qui accueille les fichiers en question. Magnifique n’est-ce pas ?