Veuillez noter que le paramètre PasswordAuthentication ne contrôle pas TOUTE l'authentification par mot de passe. Généralement, ChallengeResponseAuthentication demande également des mots de passe.
PasswordAuthentication contrôle la prise en charge du schéma d'authentification « mot de passe » défini dans la RFC-4252 (section 8). ChallengeResponseAuthentication contrôle la prise en charge du schéma d'authentification 'keyboard-interactive' défini dans RFC-4256. Le schéma d'authentification « clavier interactif » pourrait, en théorie, poser à un utilisateur un certain nombre de questions à plusieurs facettes. En pratique, il ne demande souvent que le mot de passe de l'utilisateur.
Si vous souhaitez désactiver complètement l'authentification par mot de passe, définissez DEUX PasswordAuthentication et ChallengeResponseAuthentication sur « non ». Si vous avez l'esprit ceinture et bretelles, envisagez également de définir UsePAM sur "non".
L'authentification basée sur une clé publique/privée (activée par le paramètre PubkeyAuthentication) est un type d'authentification distinct qui n'implique pas l'envoi de mots de passe utilisateur au serveur, bien sûr.
Certains diront que l'utilisation de ChallengeResponseAuthentication est plus sécurisée que PasswordAuthentication car elle est plus difficile à automatiser. Ils recommandent donc de laisser PasswordAuthentication désactivé tout en laissant ChallengeResponseAuthentication activé. Cette configuration encourage également (mais n'empêche pas nécessairement) l'utilisation de l'authentification par clé publique pour toute connexion automatisée au système. Mais, étant donné que SSH est un protocole basé sur le réseau, le serveur n'a aucun moyen de garantir que les réponses à ChallengeResponseAuthentication (alias 'keyboard-interactive') sont réellement fournies par un utilisateur assis devant un clavier tant que le défi (s) toujours et consiste uniquement à demander à un utilisateur son mot de passe.
Votre lien pointe vers une documentation périmée de 10 ans.
SSH prend en charge plusieurs façons d'authentifier les utilisateurs, la plus courante consiste à demander un identifiant et un mot de passe, mais vous pouvez également authentifier l'utilisateur avec un identifiant et une clé publique. Si vous définissez PasswordAuthentication sur non, vous ne pourrez plus utiliser un identifiant et un mot de passe pour vous authentifier et devrez utiliser un identifiant et une clé publique à la place (si PubkeyAuthentication est défini sur oui)
PasswordAuthentication est l'implémentation la plus simple, car il n'y a rien à faire. La contrepartie est que vous envoyez votre mot de passe, via une connexion cryptée, au serveur. Cela peut être un problème de sécurité si le serveur a été compromis, car le mot de passe pourrait alors être capturé.
Avec la clé publique, votre mot de passe n'est pas transmis au serveur, c'est plus sécurisé mais il nécessite plus de configuration.