Sélection machines dans ssh_config
Bonjour,
Là où je travaille, il y a des milliers d'ordinateurs Linux sur lesquels on peut se connecter par ssh. C'est vraiment bien mais cela pose aussi quelques problèmes d'administration, notamment pour la mise à jour des clés des ordinateurs: à chaque (ré-) installation, les clés sont (re-) générées et il faut donner la clé publique à tous les autres ordinateurs. C'est ce que nous faisons actuellement.
Cependant, je voudrais simplifier la tâche en divisant les ordinateurs accessibles en deux camps: l'intérieur de notre organisation (a priori l'environnement y est sécurisé) et l'extérieur (qui nécessite toutes les précautions). Pour l'intérieur uniquement, je voudrais passer les paramètres "StrictHostKeyChecking" à "no" pour ne pas être dérangé par les "yes" à répondre et "IdentityFile" à "/dev/null" pour éviter de conserver les adresses collectées. Cela se passe dans le fichier /etc/ssh/ssh_config.
Malheureusement, j'ai des difficultés à faire la distinction entre extérieur et intérieur. Les noms des machines à l'intérieur ne possèdent pas de point "." alors que le nom du domaine est indispensable à l'extérieur: mon_ordinateur est une machine de l'intérieur alors que un_ordinateur.un_domaine est considéré comme étant à l'extérieur (et donc avec sécurité maximum).
Le fichier /etc/ssh/ssh_config devrait être comme ce qui suit:
Code:
1 2 3 4 5 6 7
| Host !?*.?*
StrictHostKeyChecking no
IdentityFile /dev/null
Host *
StrictHostKeyChecking yes
IdentityFile ~/.ssh/known_hosts |
Ce qui devrait vouloir dire: toutes les connexions vers des machines possédant un point au milieu de leur nom ont les paramètres lignes 2 et 3, pour toutes les autres connexions, les paramètres lignes 6 et 7.
Ça ne marche pas parce que la sélection ligne 1 ne sélectionne rien... J'ai essayé plein de sélections différentes, sans résultat. Auriez-vous une idée du problème?