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.