Che cosa significa "senza password" nel file sshd_config?

105

Ho appena installato Ubuntu 14.04 sul mio server e stavo configurando tutti i miei file di configurazione quando ho trovato questo nel mio file sshd_config :

# 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 password.

Ho provato a connetterti 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 lasciato entrare, il che è stato un sollievo. Quindi la mia domanda è: cosa significa senza password e perché è un default in Ubuntu 14.04?

    
posta John 18.04.2014 - 03:12
fonte

4 risposte

125

Dalla manpage :

  

PermitRootLogin

     

Specifica se la root può accedere utilizzando ssh (1). L'argomento   deve essere "yes", "without-password", "forced-commands-only", o   "no". Il valore predefinito è "sì".

     

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

     

Se questa opzione è impostata su "solo comandi forzati", accedi root con   l'autenticazione della chiave pubblica sarà consentita, ma solo se il   È stata specificata l'opzione command (che potrebbe essere utile per l'acquisizione   backup remoti anche se il login di root non è normalmente consentito). Tutti   altri metodi di autenticazione sono disabilitati per root.

     

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

Pertanto without-password consente il login di root solo con l'autenticazione a chiave pubblica. Questo è spesso usato con script di shell e attività automatizzate.

    
risposta data Florian Diesch 18.04.2014 - 03:26
fonte
15

In realtà questa impostazione non fa praticamente nulla se si utilizza l'autenticazione PAM. Nella parte inferiore del file di configurazione sshd_config 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
    
risposta data Atari911 15.11.2014 - 18:34
fonte
3

Si noti che ci sono motivi legittimi per accedere tramite root (ma usando le chiavi di crittografia e mai una password). Un tipico esempio è la sincronizzazione remota di due server (per utilizzarne uno come fail-over). Poiché la struttura deve essere identica, spesso è richiesta una password di root.

Ecco un esempio che utilizza unison per la sincronizzazione: link

    
risposta data Gwyneth Llewelyn 17.01.2015 - 21:26
fonte
0

Nelle versioni più recenti di sshd "without-password" è stato modificato in "prohibit-password".

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

    
risposta data teknopaul 23.03.2018 - 00:12
fonte

Leggi altre domande sui tag