Le fichier de config SSH qui révolutionne la vie

logo SSH puffy

Une manière simple et efficace de gagner du temps lorsque l'on travaille avec plusieurs serveurs : le fichier de config SSH !

Utilisation

Rien de plus simple, créer le fichier ~/.ssh/config et entrer les informations nécessaire aux connexions SSH :

Host foo
    HostName 12.12.12.12
    Port 222
    User fooUser

Host bar
    HostName www.super-bar.fr
    Port 222

Host *
    User root

Voici quelques explications (il y en a-t-il vraiment besoin ...) :

  • Host : alias utilisé pour se connecter
  • HostName : nom d'hôte ou adresse IP de la machine sur laquelle se connecter
  • Port : numéro de port sur lequel se connecter (par défaut 22)
  • User : login de connexion (par défaut le login de l'utilisteur lançant la commande ssh)
  • Host * : permet de spécifier des paramètres de connexion par défaut. Par exemple l'alias bar n'a pas d'utilisateur de défini. Il prendra donc la valeur root qui est indiqué dans Host *

Une fois le fichier créé, il n'y a plus qu'à profiter de la vie ! Ce qui donne dans la pratique :

ssh foo
# qui est l'équivalent de 'ssh -p222 fooUser@12.12.12.12'

Oui, mais si je gère beaucoup de serveurs ...

Pas besoin de connaitre tout les alias, ssh utilise une fonctionnalité bien pratique du bash qui est la complétion. Pour ceux qui ne savent pas ce que c'est (on ne sait pas tout), je vous invite à faire le test :

  • écrire ssh dans le terminal
  • appuyer deux fois de suite sur [Tab] afin d'obtenir la liste des alias disponnible
  • commencer à écrire l'alias puis tapper une fois sur [Tab] pour completer automatiquement la fin de l'alias

Mais encore ...

config_ssh est aussi valable avec la commande scp :

scp file.txt bar:/tmp/

Il est possible d'utiliser un autre fichier de configuration que celui par défaut :

ssh -F ~/.ssh/anotherConfig bar

Il existe de nombreux autre paramètres, pour les connaître :

man ssh_config

En voici deux que j'aime bien utiliser :

Host bar babar
    HostName 22.22.22.22
    IdentityFile ~/.ssh/foo.key
  • Host bar babar : deux alias pointant sur un même paramétrage
  • IdentityFile ~/.ssh/foo.key : indique le chemin de la clé à utiliser (par défaut ~/.ssh/id_rsa si elle existe)

Pour finir

Voilà pour la présentation de ma découverte, j'espère qu'elle vous sera utile autant qu'elle me sert dans mon quotidien professionnel (passer son temps à chercher des informations de connexion dans une base client et assez rébarbatif).

By @Mikael FLORA in
Tags : #réseau,