Soluzione 1:
Prova Match
in sshd_config
:
Match User user1,user2,user3,user4
PasswordAuthentication no
O per gruppo:
Match Group users
PasswordAuthentication no
Oppure, come menzionato nel commento, per negazione:
Match User !root
PasswordAuthentication no
Si noti che la corrispondenza è efficace "fino a un'altra riga di corrispondenza o alla fine del file". (l'indentazione non è significativa)
Soluzione 2:
Match
in sshd_config
funziona bene. Dovresti usare Match all
per terminare il match block se stai usando openssh 6.5p1 o versioni successive. Esempio:
PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all
Soluzione 3:
Ci sono alcuni modi in cui puoi farlo - in primo luogo, potresti plausibilmente eseguire un secondo demone sshd su una porta diversa con una configurazione diversa - è un po' un hack, ma con un po' di lavoro chroot dovrebbe funzionare bene.
Inoltre, potresti consentire l'autenticazione della password, ma bloccare le password per tutti tranne un utente. Gli utenti con password bloccate potranno comunque autenticarsi con chiavi pubbliche.