Je ne peux pas commenter sur la réponse acceptée (car je n'ai pas une réputation suffisante), mais la page de manuel pour usermod et passwd semble suggérer que la réponse de Sambits n'est pas suffisante pour verrouiller complètement un utilisateur du système si la connexion SSH par clé publique est activée :
-l, --lock
Verrouille le mot de passe du compte nommé. Cette option désactive un mot de passe en le changeant en une valeur qui ne correspond à aucun mot de passe crypté possible (elle ajoute un ´!´ au début du mot de passe).
Notez que cela ne désactive pas le compte. L'utilisateur peut encore se connecter en utilisant un autre jeton d'authentification (par exemple, une clé SSH). Pour désactiver le compte, les administrateurs devraient utiliser usermod --expiredate 1 (cela définit la date d'expiration du compte au 2 janvier 1970).
Les utilisateurs avec un mot de passe verrouillé ne sont pas autorisés à changer leur mot de passe.
Donc pour être sûr, vous devriez faire :
passwd --lock
ou
usermod --lock
et
usermod --expiredate 1
Ensuite pour annuler cela :
usermod --unlock
usermod --expiredate