Sudo, dans sa configuration la plus courante, oblige l'utilisateur à taper son mot de passe. En règle générale, l'utilisateur a déjà utilisé son mot de passe pour s'authentifier dans le compte, et taper à nouveau le mot de passe est un moyen de confirmer que l'utilisateur légitime n'a pas abandonné sa console et a été détourné.
Dans votre configuration, le mot de passe de l'utilisateur serait utilisé uniquement pour l'authentification à sudo. En particulier, si la clé SSH d'un utilisateur est compromise, l'attaquant ne pourrait pas élever ses privilèges root sur le serveur. L'attaquant pourrait planter un enregistreur de frappe dans le compte, mais cet enregistreur de frappe serait détectable par d'autres utilisateurs, et pourrait même être surveillé automatiquement.
Un utilisateur doit normalement connaître son mot de passe actuel pour le changer en un mot de passe différent. Le passwd
programme vérifie cela (il peut être configuré pour ne pas le faire, mais ce n'est pas utile ou du tout souhaitable dans votre scénario). Cependant, root peut changer le mot de passe de n'importe quel utilisateur sans connaître l'ancien; par conséquent, un utilisateur doté de pouvoirs sudo peut modifier son propre mot de passe sans le saisir à l' passwd
invite en exécutant sudo passwd $USER
. Si sudo
est configuré pour exiger le mot de passe de l'utilisateur, l'utilisateur doit avoir tapé le mot de passe de sudo
toute façon.
Vous pouvez désactiver l'authentification par mot de passe de manière sélective. Dans votre cas, vous devez désactiver l'authentification par mot de passe dans ssh, et éventuellement dans d'autres services. La plupart des services sur les unités les plus modernes (y compris Ubuntu) utilisent PAM pour configurer les méthodes d'authentification. Sur Ubuntu, les fichiers de configuration PAM vivent /etc/pam.d
. Pour désactiver l'authentification par mot de passe, mettez la auth … pam_unix.so
ligne en commentaire /etc/pam.d/common-auth
. De plus, assurez- vous que vous avez PasswordAuthentication no
dans /etc/ssh/sshd_config
la intégré l'authentification par mot de passe de désactiver sshd.
Vous souhaiterez peut-être autoriser certains utilisateurs administratifs à se connecter avec un mot de passe ou autoriser l'authentification par mot de passe sur la console. C'est possible avec PAM (c'est assez flexible), mais je ne pourrais pas vous dire à quel point je suis au sommet de ma tête; posez une question distincte si vous avez besoin d'aide.