Dans ce qui suit, je parle du client OpenSSH installé par défaut sur Debian.
J'aimerais que plusieurs (sous-)domaines pointent vers mon ou mes serveurs (donc plusieurs par serveur), par exemple database.example.com, webserver.example.com, etc. Je veux cela parce que j'ai plusieurs serveurs et parfois je ne sais pas par cœur quel service fonctionne sur quel serveur. Je veux gérer cela par DNS en ayant un sous-domaine pour chaque service et ensuite je peux utiliser ce sous-domaine pour SSH dans le bon serveur sans avoir à me rappeler sur quel serveur le service est exécuté.
Le problème est que : L'empreinte digitale semble inclure le nom de domaine. Ainsi, si database.example.com et webserver.example.com pointent vers la même IP et que j'ai utilisé database.example.com et vérifié l'empreinte digitale (pour qu'elle soit ajoutée à known_hosts), je dois recommencer la vérification si je me connecte au serveur via webserver.example.com par la suite.
Je ne comprends pas pourquoi on utilise ici le domaine et non l'adresse IP vers laquelle le domaine se résout. Existe-t-il un moyen d'utiliser l'adresse IP au lieu du domaine dans l'empreinte digitale ? (peut-être une option de configuration).
Et si c'est le cas, cela peut-il poser un problème de sécurité ?
Et pourquoi est-ce qu'il est mis en œuvre de cette façon en premier lieu ? D'après ce que j'ai compris, l'empreinte digitale est dérivée de la clé publique du serveur, pour laquelle seul le serveur possède la clé privée correspondante. Alors pourquoi est-il même nécessaire d'inclure quoi que ce soit comme le domaine ou l'IP ? Cela ne m'empêche-t-il pas seulement de me connecter accidentellement à l'un de mes autres serveurs que j'ai sauvegardés dans known_hosts ?
Ajouter les clés de chaque sous-domaine que j'utilise pour me connecter à un serveur à known_hosts est l'option que je préfère le moins car c'est beaucoup plus de travail et invite à ignorer la vérification de la clé puisqu'on s'habitue au fait qu'elle demande si la clé est correcte plusieurs fois pour le même serveur.
Creo que ce poste est lié, mais il s'agit juste de dire que c'est traité de cette façon et non pas pourquoi et s'il y a un moyen de changer ce comportement.
Merci d'avance
Éditer : J'ai aussi trouvé ce poste qui suggère maintenant de désactiver StrictHostKeyChecking
mais d'après ce que je comprends, cela permet de ssh-add toutes les empreintes digitales, ce qui, d'après ce que je comprends, est un problème du point de vue de la sécurité. Ce que je veux, c'est que, même si j'utilise le domaine pour me connecter au serveur, l'IP soit utilisée pour la vérification de l'empreinte digitale (ssh résout l'ip lui-même de toute façon, ce que vous pouvez voir en utilisant la commande -vvv
drapeau)
0 votes
Il n'y a aucun moyen de modifier ce comportement. L'empreinte digitale ne contient pas le nom DNS, le client stocke simplement l'empreinte digitale séparément pour chaque hôte connu. foo.example.com est un hôte différent de bar.example.com, même s'ils pointent vers le même hôte "physique". SSH ne se soucie pas de cela.
0 votes
Vous pouvez utiliser des certificats au lieu de clés d'hôte pour vérifier l'identité du serveur. Vous aurez cependant besoin d'un certificat qui soit valide pour chaque nom d'hôte.
0 votes
Merci. Après avoir cherché pendant quelques heures de plus, j'ai trouvé cela il y a quelques minutes aussi. Mais peut-être qu'il y a une option pour dire à SSH "hey, s'il vous plaît n'ajoutez pas le nom dns mais l'ip que vous avez résolu le nom dns au fichier known_hosts et vérifiez avec l'ip résolu au lieu du nom dns" ?
1 votes
Pas à ma connaissance. Et si c'était le cas, cela réduirait la sécurité de SSH. Qui sait si quelqu'un a usurpé l'adresse IP ?
0 votes
Mais d'après ce que j'ai compris, c'est la même chose dans l'autre sens : Qui sait si le DNS s'est résolu sur une autre IP parce que quelqu'un l'a usurpée ? AFAIK l'IP n'est pas vérifiée si la connexion est établie avec un nom de domaine.
0 votes
Il y a peut-être un moyen d'y parvenir en utilisant la fonction
CanonicalizeHostname
yCanonicalizePermittedCNAMEs
et de changer vos enregistrements DNS pour qu'ils soient des CNAME, mais je trouve la documentation sur ces options confuse (d'où le fait que ce soit un commentaire plutôt qu'une réponse).