Cosa significa "senza password" nel file sshd_config?


118

Ho appena installato Ubuntu 14.04 sul mio server e stavo configurando tutti i miei file di configurazione quando mi sono imbattuto in questo nel mio sshd_configfile:

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

Questo mi ha fatto molto preoccupare. Ho pensato che fosse possibile che qualcuno potesse accedere al mio server come root senza una password.

Ho provato a connettermi al mio server come root tramite:

johns-mbp:~ john$ ssh root@192.168.1.48
The authenticity of host '192.168.1.48 (192.168.1.48)' can't be established.
RSA key fingerprint is 40:7e:28:f1:a8:36:28:da:eb:6f:d2:d0:3f:4b:4b:fe.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.48' (RSA) to the list of known hosts.
root@192.168.1.48's password:  

Ho inserito una password vuota e non mi ha fatto entrare, il che è stato un sollievo. Quindi la mia domanda è: cosa significa senza password e perché è un valore predefinito in Ubuntu 14.04?

Risposte:


142

Dalla manpage :

PermitRootLogin

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.

Se questa opzione è impostata su "solo comandi forzati", sarà consentito l'accesso root con autenticazione con chiave pubblica, ma solo se l' commandopzione è stata specificata (che può essere utile per eseguire backup remoti anche se l'accesso root non è normalmente consentito) . Tutti gli altri metodi di autenticazione sono disabilitati per root.

Se questa opzione è impostata su "no", root non può accedere.

Pertanto, without-passwordconsente l'accesso root solo con l'autenticazione con chiave pubblica. Questo è spesso usato con script di shell e attività automatizzate.


2
Non consentire "Login root" utilizzando la password è considerato una sicurezza più forte rispetto a consentirla. Detto questo, non dovresti accedere al root , a meno che nessun altro metodo (sudo, ecc.) Funzioni.
david6,

5
Come puoi vedere, tuttavia, mentre la pagina man indica che il valore predefinito è "sì", Ubuntu ha impostato il valore predefinito "senza password".
ruota di ferro

36
Quindi without-passwordsignifica tutti i metodi consentiti tranne la password? Sembra davvero "permesso l'accesso senza la necessità di una password".
Gauthier,

1
"Tutti gli accessi root dovrebbero essere facilitati attraverso un accesso locale con un ID utente univoco e identificabile e quindi tramite il comando su una volta autenticato localmente. L'accesso root diretto è estremamente insicuro e offre poco in termini di controllo del controllo per responsabilità." - CIS IBM AIX Guide
Dominik Antal,

22
PermitRootLogin now accepts an argument of 'prohibit-password' as a less-ambiguous synonym of 'without-password'.
endolith

16

In realtà questa impostazione non fa praticamente nulla se si utilizza l'autenticazione PAM. Nella parte inferiore del sshd_configfile di configurazione troverai:

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.

L'impostazione predefinita su Ubuntu è l'uso dell'autenticazione PAM:

UsePAM yes

1
Nella mia breve esperienza , anche impostando questo su nonon farà PermitRootLogin without-passwordeffettivamente funzionare, in qualche modo! :(
cregox,

1
@cregox se stai usando un tipico sistema desktop, devi farlo ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipe tieni ~/.ssh/authorized_keyspresente che se non riesci ad accedere come root non creeresti questo file in /root/.ssh/ ma funziona se copi il file lì
Rutrus,

3

Si noti che esistono motivi legittimi per accedere tramite root (ma utilizzando chiavi crittografiche e mai una password). Un esempio tipico è la sincronizzazione remota di due server (per utilizzarne uno come failover). Poiché la struttura deve essere identica, spesso è richiesta una password di root.

Ecco un esempio di utilizzo dell'unisono per la sincronizzazione: https://serverfault.com/questions/341985/remotely-use-root-over-ssh-for-unison


2
Non accederai con un utente normale (usando molto probabilmente le chiavi crittografiche) e averlo appartenente al sudogruppo ti consentirà di fare anche questo?
NS du Toit,

2

Nelle versioni più recenti di sshd "senza password" è stato modificato in "forbit-password".

Entrambe le versioni funzionano, probabilmente è meglio usare "forbit-password" se puoi: si spiega meglio.

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.