PreferredAuthentications=password
et PreferredAuthentications=keyboard-interactive
demanderaient le mot de passe, alors quelle est la différence entre eux?
Je Google'd avec les mots-clés ssh PreferredAuthentications différence de clavier interactif mais n'a trouvé aucune réponse.
La seule différence que j'ai remarquée concerne les chaînes d'invite (user@Host's password:
contre Password:
):
$ ssh -o PreferredAuthentications=password,keyboard-interactive my-Host
root@my-Host's password:
Password:
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).
Ce qui suit est tiré du SSH: livre TDG mentionné dans la réponse de de Jouell .
L’authentification utilisateur
"keyboard-interactive"
est principalement destinée à permettre l’authentificationPAM
côté serveur. Il fournit un dialogue multiple défi-réponseavec lequel le serveur envoie une requête textuelle à l'utilisateur, l'utilisateur tape une réponse et ce processus peut répéter autant de fois que nécessaire. fois. Ainsi, par exemple, vous pouvez configurerPAM
pour SSH avec un module effectuant l'authentification à l'aide d'un jeton de sécurité RSA ou d'un schéma de mot de passe à usage unique . Cela confond les gens car, par défaut, l'authentification"keyboard-interactive"
implémente généralement l'authentification par mot de passe dans un seul cycle d'interrogation-réponse, qui demande simplement un mot de passe, ce qui donne exactement la même apparence que l'authentification"password"
. Si vous n'utilisez pas les deux à des fins différentes à des fins différentes, vous pouvez désactiver l'une ou l'autre pour éviter toute confusion de l'utilisateur final.
Le protocole SSH a de nombreuses méthodes d'authentification. Le mot de passe et le clavier interactif sont deux d'entre eux.
L'authentification de mot de passe est une simple demande d'un mot de passe unique. Il n'y a pas d'invite spécifique envoyée par le serveur. C'est donc le client qui choisit comment étiqueter l'invite (l'invite "mot de passe de l'utilisateur @ hôte" provient des clients OpenSSH , comme ssh
, sftp
, etc).
L'authentification interactive au clavier est une demande plus complexe pour un nombre arbitraire d'informations. Pour chaque information, le serveur envoie l'étiquette de l'invite. De plus, cela permet au serveur de fournir une longue description de la "forme" globale. Le serveur peut également spécifier les entrées secrètes (à masquer lorsque l'utilisateur les tape) et celles qui ne le sont pas.
Bien que, dans la plupart des cas, l’authentification interactive au clavier soit utilisée pour demander un seul mot de passe "secret", il n’ya donc guère de différence entre l’authentification par mot de passe .
C'est la différence du point de vue du protocole.
Du point de vue de la mise en œuvre, avec le serveur OpenSSH, l’authentification interactive au clavier peut être connectée à des authentifications à deux facteurs (ou à plusieurs facteurs), par ex. fourni par mécanisme générique de PAM ou Kerberos .
Du point de vue du client, une autre différence est la localisation. Avec authentification par mot de passe , le client peut localiser le libellé "Mot de passe" , car il sait que le serveur demande un mot de passe. Avec authentification interactive au clavier , même lorsque le serveur ne demande qu'un mot de passe, le client ne peut pas localiser l'invite (sauf si elle emploie une intelligence artificielle), car il s'agit d'une invite générique.
Vous savez déjà ce qu'est le mot de passe. À partir d'un niveau très élevé (pas de protocole de niveau brique), pensez à "clavier interactif" comme méthode permettant d'utiliser 2FA à l'aide de Radius et/ou SecurID, etc. Il fournit des boîtes de dialogue de défi et de réponse: ssh.com a une courte description de Nice à ce sujet. Il va encore plus loin pour souligner que le clavier interactif est le parapluie dont le mot de passe relève. Respectueusement aux auteurs, c'est un peu déroutant.
Voir également la définition Snail Book . Nous l'utilisons fréquemment pour nos boîtes protégées RSA.