Consenti al root di accedere tramite ssh solo con autenticazione basata su chiave


49

Ho dei dubbi su alcune configurazioni del server SSH su /etc/ssh/sshd_config. Voglio il prossimo comportamento:

  1. L'autenticazione con chiave pubblica è l'unico modo per autenticarsi come root (nessuna autenticazione tramite password o altro)
  2. Gli utenti normali possono utilizzare entrambi (autenticazione password e chiave pubblica)

Se imposto il PasswordAuthentication nomio primo punto è soddisfatto ma non il secondo. C'è un modo per impostare PasswordAuthentication nosolo per root?

Risposte:


78

Puoi farlo usando la PermitRootLogindirettiva. Dalla sshd_configmanpage:

Specifica se il root può accedere usando ssh (1). L'argomento deve essere "Sì", "Senza password", "Solo comandi forzati" o "No". L'impostazione predefinita è "sì".

Se questa opzione è impostata su "senza password", l'autenticazione della password è disabilitata per root.

Quanto segue realizzerà ciò che desideri:

PasswordAuthentication yes
PermitRootLogin without-password

1
Ho provato questo su Debian e verificato con service ssh restartsul server e poi sul client ho provato a connettermi senza la mia chiave con ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no root@hoste in effetti non ho potuto accedere con password ma con chiave per l'utente root.
Bastian,

Sì, ma se invece lo fai, puoi accedere con la password: ssh -o PreferredAuthentications=password root@hostnon particolarmente sicuro imho
geoidesic

2
Nel 2019 è "PermitRootLogin prohibit-password", il vecchio senza password è un alias deprecato.
vbraun

10

È possibile utilizzare i Matchblocchi per configurare alcune opzioni per autenticazione utente o gruppo o per indirizzo IP o nome host dell'origine della connessione.

PasswordAuthentication yes
PermitRootLogin yes

Match User root
PasswordAuthentication no

3
Sono riuscito a bloccarmi dal mio server SSH facendo questo.
Richard Metzler,

Questo sembra il metodo migliore se non si desidera mai che venga visualizzata la richiesta della password per root.
Leo,

Anche questo mi ha bloccato. Penso che potrebbe essere nell'ordine sbagliato ...
Gary,

3

Ho un approccio ancora più restrittivo per garantire i privilegi di root sul mio server, il che potrebbe essere interessante per i paranoici come me. Fai attenzione a ciò che fai e in quale ordine, altrimenti potresti finire con un sistema su cui non puoi accedere alla radice.

  • Crea un gruppo specifico sugroup, i cui membri potranno diventare root e consentire l'autenticazione con chiave per questo gruppo inserendo le seguenti righe alla fine di sshd_confid:

Match Group sugroup

PasswordAuthentication no

  • Inserisci il comando auth required pam_wheel.so group=sugroupin /etc/pam.d/su. Potrebbe essere già lì e devi solo decommentarlo. Ciò nega l'accesso root a tutti gli utenti non membri di sugroup
  • Scegli una password di root forte :)
  • Verifica se il tuo nuovo metodo di autenticazione funziona e solo se:
  • Nega l'accesso root diretto tramite ssh utilizzando PermitRootLogin noin /etc/ssh/sshd_config.

Utilizzando questa configurazione è necessario utilizzare un'autenticazione con chiave e una password per diventare root. Ho configurato il mio server in questo modo, poiché preferisco non avere accesso root diretto tramite ssh, indipendentemente dal metodo di autenticazione.

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.