come disabilitare l'accesso SSH con password per alcuni utenti?


166

Su Linux (Debian Squeeze) vorrei disabilitare l'accesso SSH usando la password per alcuni utenti (gruppo selezionato o tutti gli utenti tranne root). Ma non voglio disabilitare il login usando il certificato per loro.

modifica: grazie mille per la risposta dettagliata! Per qualche motivo questo non funziona sul mio server:

Match User !root
PasswordAuthentication no

... ma può essere facilmente sostituito da

PasswordAuthentication no
Match User root
PasswordAuthentication yes

Forse è a causa del tuo rientro?
zero

7
Vale la pena ricordare che quelle righe in corrispondenza dovrebbero essere alla fine del file
zidarsk8

1
Anche root non funziona per me. Il secondo approccio ha funzionato.
natenho,

Ho visto casi in cui ha Match User "!root,*"fatto il lavoro.
Roman Hocke,

Risposte:


181

Prova Matchin sshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

O per gruppo:

Match Group users
    PasswordAuthentication no

O, come menzionato nel commento, per negazione:

Match User !root
    PasswordAuthentication no

Nota che la corrispondenza è efficace "fino a quando non viene visualizzata un'altra riga di corrispondenza o la fine del file". (il rientro non è significativo)


4
preferisco Match user !rootper questo caso
84104

1
Fantastico, non sapevo della sintassi di Match. Un suggerimento che darei, tuttavia, è che se si tratta di un server pubblico, non consentirei l'accesso root tramite SSH. Probabilmente non è un grosso problema se è interno però ...
Safado,

4
@SpacemanSpiff Ecco a cosa servono a) password complesse eb) denyhosts / fail2ban.
Ceejayoz,

2
@ deed02392 Puoi considerare una chiave come una password davvero molto forte, se vuoi.
Ceejayoz,

4
È molto più forte, non è nello stesso parco giochi, questo era il mio punto. L'autenticazione password deve essere disabilitata anche per root e le chiavi devono essere consentite solo per gli accessi.
deed02392,

22

Matchin sshd_configfunziona bene. Dovresti usare Match allper terminare il blocco delle partite se stai usando openssh 6.5p1 o superiore. Esempio:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

Non ha funzionato per me ...
Dimitrios,

"Abbina tutto" ha fatto il trucco. Grazie. Senza "Match all" sshd non si avvia.
Vladimir Kondratyev,

3

Ci sono alcuni modi in cui puoi farlo - in primo luogo, potresti facilmente eseguire un secondo demone sshd su una porta diversa con diversa configurazione - è un po 'un trucco, ma con un po' di chroot dovrebbe funzionare bene.

Inoltre, è possibile consentire l'autenticazione con password, ma bloccare le password per tutti tranne uno. Gli utenti con password bloccate potranno comunque autenticarsi con le chiavi pubbliche.


-1

puoi semplicemente andare su / etc / ssh / sshd_config e aggiungere una riga per consentire -> AllowUsers user1 a Negare ---> DenyUsers user2

possiamo consentire / negare l'accesso per un particolare set di host usando i file hosts.allow o hosts.deny che si trovano nella cartella / etc


-1

Per motivi di sicurezza, potrebbe essere necessario bloccare l'accesso SSH dell'utente a Linux box.

Modifica il file sshd_config, la posizione a volte sarà diversa a seconda della distribuzione Linux, ma di solito è in / etc / ssh /.

Apri il file mentre accedi come root:

# vi /etc/ssh/sshd_config

Inserire una riga alla fine del file di configurazione: -

DenyUsers username1 username2 username3 username4

Salvalo e riavvia i servizi SSH. Fondamentalmente username1, username2, username3 e username4 SSH non sono consentiti.

Esegui sotto il comando per riavviare lo stesso: -

# systemctl restart sshd

Il requisito è stato fatto. Si prega di prendere la ssh da quegli utenti e si otterrà l'errore "Accesso negato"


1
La domanda riguardava la disabilitazione dell'accesso con password (ma mantenendo l'accesso con l'autenticazione con chiave).
Gerald Schneider
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.