Ma réponse est que l'utilisation de paires de clés publiques est une chose beaucoup plus sage à faire que l'utilisation de mots de passe ou de listes de mots de passe. Je vais me concentrer sur des éléments peu connus concernant les différentes formes d'authentification SSH, et je ne vois aucune autre réponse les mentionnant.
Tout d'abord, vous devez comprendre que l'authentification des utilisateurs est un processus différent et distinct de l'établissement du canal sécurisé . En termes simples, cela signifie d'abord que la clé publique du serveur est utilisée (si elle est acceptée!) Pour construire le canal SSH sécurisé, en permettant la négociation d'une clé symétrique qui sera utilisée pour protéger la session restante, activer le canal confidentialité, protection de l’intégrité et authentification du serveur.
Une fois le canal est fonctionnel et sécurisé, l’authentification de l’utilisateur a lieu. Les deux méthodes habituelles de le faire sont d’utiliser un mot de passe ou une paire de clés publiques.L'authentification par mot de passe fonctionne comme vous pouvez l'imaginer: le client envoie son mot de passe sur le canal sécurisé, le serveur vérifie qu'il s'agit bien du mot de passe de l'utilisateur spécifique et autorise l'accès.Dans le cas de la clé publique, nous avons une situation très différente. Dans ce cas, le serveur a la clé publique de l'utilisateur stockée. Ce qui se passe ensuite, c'est que le serveur crée une valeur aléatoire (nonce), la crypte avec la clé publique et l'envoie à l'utilisateur. Si l'utilisateur est censé être, il peut décrypter le défi et le renvoyer au serveur, qui confirme alors l'identité de l'utilisateur. Il s'agit du modèle défi-réponse classique. (En SSHv2, quelque chose d'un peu différent mais conceptuellement proche est en fait utilisé)
Comme vous pouvez l'imaginer, dans le premier cas, le mot de passe est en fait envoyé au serveur (à moins que SSH n'utilise une réponse de défi de mot de passe), dans le second, votre clé privée ne quitte jamais le client. Dans le scénario imaginaire où quelqu'un intercepte le trafic SSL et est capable de le déchiffrer (en utilisant une clé privée de serveur compromise, ou si vous acceptez une mauvaise clé publique lors de la connexion au serveur) ou a accès au serveur ou au client, votre mot de passe sera connu - avec l'authentification par clé publique-privée et le modèle de défi-réponse, vos détails privés ne tomberont jamais entre les mains de l'attaquant.Ainsi, même si un serveur auquel vous vous connectez est compromis, les autres serveurs pour lesquels vous utilisez la même clé ne !
Il y a d'autres avantages à utiliser une paire de clés publiques: La clé privée ne doit pas être stockée en clair sur votre ordinateur client comme vous le suggérez. Cela laisse bien sûr le fichier de clé privée ouvert à la compromission comme le ferait un fichier de mot de passe non chiffré, mais il est plus facile de déchiffrer (lors de la connexion) et d'utiliser la clé privée. Il doit être stocké chiffré et vous devez fournir une phrase de passe généralement longue pour le déchiffrer chaque fois qu'il est utilisé.
Bien sûr, cela signifie que vous devrez fournir le long mot de passe chaque fois que vous vous connectez à un serveur, pour déverrouiller votre clé privée - Il existe des moyens de contourner cela. Vous pouvez augmenter la convivialité du système en utilisant un agent d'authentification: il s'agit d'un logiciel qui déverrouille vos clés pour la session en cours, lorsque vous vous connectez à gnome par exemple ou lorsque vous ssh pour la première fois dans votre client, vous pouvez donc simplement tapez 'ssh remote-system-ip' et connectez-vous, sans fournir de phrase de passe, et faites-le plusieurs fois jusqu'à ce que vous vous déconnectiez de votre session.
Donc, pour résumer, l'utilisation de paires de clés publiques offre beaucoup plus de protection que l'utilisation de mots de passe ou de listes de mots de passe qui peuvent être capturés si le client , le serveur ou la session sécurisée est compromise . Dans le cas où vous n'utilisez pas de phrase de passe (ce qui ne devrait pas arriver), les paires de clés publiques offrent toujours une protection contre les sessions et les serveurs compromis.