J'essaie de mettre à niveau mon serveur ssh de clés RSA 2048 bits vers des clés plus grandes, car les recommandations sont de supprimer progressivement les clés 2048 bits.
J'ai généré une nouvelle clé, puis je l'ai ajoutée à la configuration sshd, comme ceci:
HostKey / etc / ssh / ssh_host_rsa_key (ancienne clé 2k-bit en premier) HostKey / etc / ssh / ssh_host_rsa4096_key (nouvelle clé plus grande 2e )
Après le redémarrage sshd
, j'ai envoyé à l'hôte, je ne reçois pas l'avertissement d'identification modifiée, mais le nouveau n'est pas non plus mis en cache ~/.ssh/known_hosts
. Si je mets les lignes dans l'ordre inverse, j'obtiens l'avertissement d'identification modifiée. De même, lorsque j'ajoute une clé ed25519, quel que soit l'ordre dans lequel je la mets, le client n'ajoute pas la nouvelle clé au fichier d'hôtes connu.
Cela semble rendre impossible le roulement des clés de l'hôte SSH - difficile de croire que c'est vraiment le cas, cependant, étant donné que la sécurité nécessite régulièrement la mise à niveau des clés.
Je sais que vous pouvez simplement échanger la clé, puis chaque client doit exécuter ssh-keygen -R
pour supprimer l'ancienne clé, puis vérifier et accepter manuellement la nouvelle clé, mais cela est vraiment difficile, surtout si vous avez beaucoup de clients se connectant ou ne pas administrer tous les clients. Sans oublier que si vous n'administrez pas les clients, il y a de très bonnes chances qu'ils ne vérifient pas réellement la clé d'hôte et au lieu de cela, frappent simplement Y. La tentative d'amélioration de la sécurité vous ouvrira donc probablement à l'homme les attaques du milieu à la place.
Existe-t-il un moyen de faire fonctionner les mises à niveau des clés d'hôte SSH? C'est-à-dire que les clients devraient apprendre la nouvelle clé plus sécurisée (et aussi, espérons-le, ne pas apprendre la clé obsolète). Et sans donner la clé de l'hôte, l'avertissement de l'homme du milieu a changé.
Réponses:
La rotation de la clé d'hôte est prise en charge depuis OpenSSH 6.8 (le client et le serveur ajoutent la prise en charge dans cette version).
Donc, le processus devrait fonctionner comme ceci:
HostKey newkey
(après celles existantes) au/etc/ssh/sshd_config
sshd
UpdateHostKeys yes
dans leur configuration (globalement ou par hôte)sshd_config
et redémarrersshd
Les nouveaux clients pourront récupérer les nouvelles clés. Cette fonctionnalité n'est pas activée par défaut, probablement parce qu'elle est assez récente et a rapidement montré une certaine sécurité. Mais de nos jours, ça devrait être bien de l'utiliser.
la source
sshd utilise toujours la première ligne, supprimez-la, puis redémarrez sshd.
la source