De nombreux services (comme GitHub) utilisent une large gamme d'adresses IP, et évidemment la même clé publique.
Comment puis-je ajouter une plage IP (de préférence en une seule) au fichier known_hosts?
Pour l'exemple GitHub, il utilise les plages suivantes:
- 207.97.227.224/27
- 173.203.140.192/27
- 204.232.175.64/27
- 72.4.117.96/27
- 192.30.252.0/22
Et la clé est:
AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa + PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31 / YMF + Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB + weqqUUmpaaasXVal72J + UX2B + 2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi / w4yCE6gbODqnTWlg7 + wC604ydGXA8VJiS5ap43JXiUFFAaQ ==
Réponses:
Comme indiqué dans d'autres réponses, known_hosts ne prend pas en charge les plages d'adresses IP. Il prend cependant en charge les caractères génériques. Bien sûr, les caractères génériques ne sont pas tout à fait la même chose, vous devez donc faire très attention à la façon dont vous les utilisez dans les adresses IP, mais dans le cas particulier de Github, cela peut être fait en toute sécurité.
La situation semble s'être simplifiée depuis la question posée. Selon la documentation officielle de Github, il n'y a qu'une seule plage d'adresses IP utilisée (au moins en ce qui concerne IPv4). Il s'agit de la gamme 192.30.252.0/22. Cela donne 1020 adresses IP possibles qui couvrent commodément toute la plage possible pour le dernier octet en seulement quatre blocs C différents.
À partir de
man 8 sshd
, c'est ce avec quoi nous devons travailler dans known_hosts:En utilisant ces informations, nous pouvons construire une entrée en utilisant le caractère générique * pour le dernier octet qui correspond à tous les points d'extrémité Github possibles (et UNIQUEMENT ces points d'extrémité) comme ceci:
Si la plage IP que vous deviez construire ne remplissait pas un bloc C complet et donc toutes les valeurs possibles pour un octet, il serait impossible d'utiliser des caractères génériques pour une correspondance aussi précise.
la source
Je ne pense pas que vous puissiez facilement ajouter les plages, mais je pense (ne peut pas tester cela pour le moment) que le même effet peut être obtenu en ajoutant ce qui suit à .ssh / ssh_config:
Ensuite, vous ajouteriez la clé au fichier known_hosts sous le nom github-server-pool.github.com.
Hypothèse: l'hôte github-server-pool.github.com n'existe pas ou n'est jamais connecté via SSH.
L'idée derrière cela est que ssh utilisera la clé github-server-pool.github.com comme clé pour rechercher la clé d'hôte publique pour tous les hôtes du domaine github.com.
la source
Le
known_hosts
fichier ne prend pas en charge les jeux d'adresses IP . Vous devrez avoir une ligne par adresse.Bien que la partie du nom d'hôte des entrées soit hachée par défaut, ce n'est que pour la confidentialité afin que quelqu'un qui vous prenne la main
.known_hosts
ne puisse pas facilement savoir à quels hôtes vous vous connectez. (Ils peuvent toujours vérifier les suppositions.) Vous pouvez utiliser un nom d'hôte simple ou une adresse IP.Notez que cela peut ajouter des doublons.
la source
SSH ne semble pas avoir de concept de plages IP pour les hôtes connus. Je pense que l'hypothèse est que chaque hôte aurait une clé unique pour des raisons de sécurité.
Je peux voir deux façons de préremplir vos hôtes connus:
ssh-keyscan
- Écrivez un bref script pour parcourir toutes ces adresses et alimentez-lessh-keyscan
ou un fichierssh-keyscan
à lire.ssh-keyscan
peut analyser plusieurs hôtes par appel, soit en spécifiant sur une ligne ou en spécifiant une liste des hôtes.Remplissez-
known_hosts
vous avec un script ou un éditeur. Le format est assez simple si vous utilisez la version non hachée. Il est:nom d'hôte, adresse IP clé ssh-keytype
hostname
est le nom d'hôte que vous contactez et serait le même pour toutes les adresses GitHub.IP address
serait ce qu'un script parcourrait.key
est la clé que vous avez fournie ci-dessus.Ni l'un ni l'autre n'est élégant, mais je pense que les gens de SSH ont supposé que personne ne ferait ce que fait GitHub.
la source
Salut, j'ai trouvé le script de Gilles assez utile, mais ne fonctionnant que pour les réseaux jusqu'à
0.0.0.0/24
était une limitation, j'ai étendu le script pour travailler avec des réseaux plus importants jusqu'à0.0.0.0/16
peut-être qu'il sera utile pour quelqu'un d'autre.la source