Le message que vous voyez est un problème distinct. Il vous demande de confirmer que l'hôte auquel vous vous connectez est vraiment celui auquel vous vous attendez. Depuis le serveur, vous pouvez obtenir l'empreinte digitale en exécutant ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
. Ensuite, lorsque vous vous connectez à distance pour la première fois, vous pouvez vous assurer que les empreintes digitales correspondent.
Les clés d'hôte, vues en action ici, résolvent le problème des attaques de l' homme au milieu - peut-être que le DNS a été subverti et que vous vous connectez à la machine d'un concurrent au lieu de la vôtre. Cette machine rassemble vos informations d'identification et transfère de manière transparente votre connexion au vrai serveur, volant vos informations à votre insu. S'assurer que les correspondances de la clé hôte empêche cela de se produire à moins que l'attaquant n'ait réellement volé la clé publique de votre serveur.
Un problème subsiste cependant - comment savoir quelle clé est la bonne? Après la première connexion, la clé publique est stockée dans votre ~/.ssh/known_hosts
fichier, les connexions suivantes sont donc correctes. Mais la première fois, soit vous avez besoin d'un moyen hors bande pour obtenir l'empreinte digitale, soit vous suivez le modèle "TOFU": la confiance à la première utilisation.
Mais rien de tout cela n'a rien à voir avec les mots de passe et les clés, sauf que les clés et les mots de passe pourraient être volés via cette attaque - dans un sens, c'est la vulnérabilité que vous demandez.
Il y a (au moins) trois raisons pour lesquelles les mots de passe sont pires que les clés:
- Ils peuvent être forcés brutalement. Un mot de passe typique à 8 caractères sélectionné par l'utilisateur a environ 30 bits de devinette-entropie. Une paire de clés publique / privée ssh mesure 1 024 bits ou plus. Il est effectivement impossible de forcer une clé ssh par force brute, mais la recherche automatique de mots de passe se produit tout le temps.
- Ils peuvent être stupides. Les utilisateurs sélectionnent régulièrement des mots de passe horribles, même avec des restrictions en place, et ils ont tendance à utiliser des mots de passe plus durs à plusieurs endroits. Cela facilite évidemment les attaques.
- Les mots de passe peuvent être volés à distance. Lorsque vous utilisez SSH, le mot de passe est crypté sur le câble, mais il est très courant que le serveur ssh soit remplacé sur les systèmes compromis par un serveur qui enregistre tous les mots de passe. Avec les clés, la clé privée reste sur le système local et n'est jamais envoyée du tout, et elle ne peut donc pas être volée sans compromettre réellement la machine cliente.
De plus, les clés ssh offrent une commodité lorsqu'elles sont utilisées avec quelque chose comme ssh-agent
- vous obtenez l'opération sans tracas de la connexion sans réauthentification à chaque fois, tout en conservant un degré de sécurité raisonnable.
Il n'y a aucun avantage significatif à demander les deux, car quelqu'un qui a suffisamment d'accès pour voler la clé privée peut également voler assez facilement le mot de passe de l'utilisateur. Si vous avez besoin de plus de sécurité que cela, envisagez d'étudier un système d'authentification à deux facteurs comme RSA SecurID ou WiKID .