Solution 1 :
Essayez Match
en sshd_config
:
Match User user1,user2,user3,user4
PasswordAuthentication no
Ou par groupe :
Match Group users
PasswordAuthentication no
Ou, comme mentionné dans le commentaire, par négation :
Match User !root
PasswordAuthentication no
Notez que la correspondance est effective "jusqu'à une autre ligne de correspondance ou jusqu'à la fin du fichier". (l'indentation n'est pas significative)
Solution 2 :
Match
en sshd_config
fonctionne bien. Vous devez utiliser Match all
pour mettre fin au bloc de correspondance si vous utilisez openssh 6.5p1 ou supérieur. Exemple :
PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all
Solution 3 :
Il y a plusieurs façons de faire cela - d'abord, vous pouvez éventuellement exécuter un deuxième démon sshd sur un port différent avec une configuration différente - c'est un peu un hack, mais avec un peu de chroot, cela devrait fonctionner très bien.
En outre, vous pouvez autoriser l'authentification par mot de passe, mais verrouiller les mots de passe pour tous les utilisateurs sauf un. Les utilisateurs avec des mots de passe verrouillés pourront toujours s'authentifier avec des clés publiques.