Limitare l'accesso SSH basato su password per utente ma consentire l'autenticazione con chiave


Risposte:


49

Puoi aggiungere sezioni "Abbina" per far corrispondere determinati utenti o gruppi nella parte inferiore di sshd_config, come:

Match user stew
PasswordAuthentication no

o

Match group dumbusers
PasswordAuthentication no

9
Eviterei il rientro poiché suggerisce che solo le linee rientrate sono interessate da Matchquando, in realtà, tutta la configurazione è interessata fino alla prossima Matchdirettiva. Potrebbe essere fonte di confusione per qualcuno che non ha familiarità con la sintassi.
Michael Mior,

2
@MichaelMior c'è un modo per "EndMatch"?
Nick T

4
@NickT Matchfunziona fino al successivo Matcho alla Hostparola chiave. Potresti semplicemente usare Match user *.
Michael Mior,

@MichaelMior Questo significa che se si utilizza Match user ZaQwEdCxS, è possibile rendere un insieme di linee di configurazione utilizzabili da nessuno, temporaneamente o permanentemente?
Tripp Kinetics,

Significherebbe che tutte le righe di configurazione successive si applicheranno solo agli utenti nominati ZaQwEdCxS. Se hai una domanda diversa, dovresti fare una nuova domanda.
Michael Mior,

4

Basta bloccare le password degli utenti a cui non si desidera accedere con le password:

usermod -L <user>

Quindi, inserisci una chiave pubblica valida nel loro .ssh/authorized_keysfile e saranno in grado di accedere solo con la chiave privata corrispondente, ma non con una password.

Nota: Questo interromperà sudo a meno che l'utente non abbia NOPASSWD: nella sua voce visudo


8
Anche questo romperà sudo. Forse non è un problema in questo caso, ma va menzionato.
EEAA

Sì è vero. Avrei dovuto menzionarlo.
Oliver,

1
Alcune configurazioni OpenSSH (ad esempio, penso che Ubuntu 14.04 nella configurazione predefinita) non consentano agli utenti bloccati di entrare, nemmeno tramite le
chiavi

@NilsToedtmann puoi citare una fonte per la verifica? Ciò sarebbe molto importante notare anche nella risposta, in tal caso.
Metagrafo,

-3

dovresti esaminare

/etc/ssh/sshd_config

Penso che quello che stai cercando sia

PasswordAuthentication yes

cambiarlo in no e non dimenticare di riavviare sshd


2
Sono consapevole di questo - questa è un'impostazione GLOBALE - Voglio un'opzione più granulare - ecco perché ho detto "base per utente" - Lo voglio solo per alcuni utenti (usato per la comunicazione innluster tra i server nel cluster) - non per tutti gli utenti
gyre

oh giusto, mi dispiace non averlo letto correttamente, quindi quello che @stew mi ha consigliato è un modo per andare
alexus
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.