Expression régulière dans .ssh / config


12

Au travail, je dois souvent me connecter à des hôtes qui suivent un schéma de nommage commun, par exemple qc01- qc12, hc01- hc10, etc. Tous ces éléments doivent obtenir les mêmes valeurs de configuration dans mon ordinateur portable .ssh/config. Bien sûr, je pourrais utiliser des entrées pour les hôtes qc*et hc*, mais je me demande si à la place il est possible d'utiliser des expressions régulières?

Réponses:




3

Vous pouvez utiliser des expressions régulières complètes dans votre ssh_config.

La documentation pertinente est IMO très difficile à lire et à comprendre. Je ne le comprends que parce que j'ai plus de 13 ans d'expérience Linux et plus de 8 ans d'utilisation ssh. Voici donc mon résumé de la documentation:

  • man ssh_config décrit une fonctionnalité appelée Match
  • puis il y a une fonctionnalité appelée execqui vous permet d'utiliser une commande shell arbitraire pour déterminer une correspondance
  • passer des paramètres d'entrée à la commande shell arbitraire est possible et décrit dans la section intitulée TOKENS

Dans mon cas, j'ai fini par utiliser dans mon~/.ssh/config :

Match exec "echo %h | grep -q 'NAME[0-9]\+$'"
    User USER
    IdentityFile /path/to/identity/file
    Hostname %h.fully.qualified.domain.name

Les tests doivent être effectués avec quelque chose de délicat comme celui-ci. Et pour faire ce test, vous appelez ssh -vvv HOSTNAME. Ce qui montrera exactement ce qui se passe et si votre nouveau Matchlogiciel est correctement implémenté.


0

Extension de la réponse de Trevor:

Des hôtes plus complexes sont également possibles, comme la correspondance foo123.123et foo10.10dans une règle SANS avoir d'entrées DNS pour les noms d'hôtes utilisés:

Match exec "echo %h | grep -q 'foo[0-9]\+.[0-9]\+$'"
    Port 1234 # just to show it can be paired with non-default ports too,
              # see %p in man ssh_config
    ProxyCommand /usr/bin/nc 10.10.$(echo %h | sed -e 's/foo//') %p

Utilisation de ProxyCommand pour manipuler le contenu de% h avec le shell et connexion au port droit via un netcat. De cette façon, vous pouvez créer des préréglages pour la catégorie d'hôtes, sans créer d'entrées individuelles.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.