Co oznacza "bez hasła" w pliku sshd_config?

105

Właśnie zainstalowałem Ubuntu 14.04 na moim serwerze i konfigurowałem wszystkie moje pliki konfiguracyjne, gdy natknąłem się na to w pliku sshd_config :

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

To bardzo mnie martwiło. Pomyślałem, że możliwe jest, że ktoś może logować się do mojego serwera jako root bez hasła.

Próbowałem połączyć się z serwerem jako root przez:

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:  

Wprowadziłem puste hasło i nie wpuściło mnie to, co było ulgą. Moje pytanie brzmi: co oznacza bez hasła i dlaczego jest to domyślne w Ubuntu 14.04?

    
zadawane John 18.04.2014, 03:12
źródło

4 odpowiedzi

124

Z strony podręcznika :

  

PermitRootLogin

     

Określa, czy użytkownik root może logować się za pomocą ssh (1). Argument   musi być "tak", "bez hasła", "tylko z wymuszonymi komendami" lub   "no". Wartość domyślna to "yes".

     

Jeśli ta opcja jest ustawiona na "bez hasła", hasło   uwierzytelnianie jest wyłączone dla roota.

     

Jeśli ta opcja jest ustawiona na "wymuszone-polecenia-tylko", root zaloguj się   Uwierzytelnianie za pomocą klucza publicznego będzie dozwolone, ale tylko wtedy, gdy    command opcja została określona (co może być przydatne do podjęcia   zdalne tworzenie kopii zapasowych, nawet jeśli logowanie root jest normalnie niedozwolone). Wszystko   inne metody uwierzytelniania są wyłączone dla roota.

     

Jeśli ta opcja jest ustawiona na "nie", root nie może się zalogować.

W ten sposób without-password zezwala na logowanie roota tylko z uwierzytelnianiem kluczem publicznym. Jest to często używane ze skryptami powłoki i zautomatyzowanymi zadaniami.

    
odpowiedział Florian Diesch 18.04.2014, 03:26
źródło
15

Właściwie to ustawienie praktycznie nie działa, jeśli używasz uwierzytelniania PAM. U dołu pliku konfiguracyjnego sshd_config znajdziesz:

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

Domyślnym ustawieniem Ubuntu jest użycie uwierzytelniania PAM:

UsePAM yes
    
odpowiedział Atari911 15.11.2014, 18:34
źródło
3

Zauważ, że istnieją uzasadnione powody, dla których logujesz się przez root (ale używając kluczy kryptograficznych i nigdy hasła). Typowym przykładem jest zdalna synchronizacja dwóch serwerów (aby jeden z nich był używany jako fail-over). Ponieważ struktura musi być identyczna, często wymagane jest hasło root.

Oto przykład użycia unisono do synchronizacji: link

    
odpowiedział Gwyneth Llewelyn 17.01.2015, 21:26
źródło
0

W nowszych wersjach sshd "bez-hasła" zmieniono na "zabronione-hasło".

Obydwie wersje działają, prawdopodobnie najlepiej używać "zakazu-hasła", jeśli potrafisz: wyjaśniają się lepiej.

    
odpowiedział teknopaul 23.03.2018, 00:12
źródło

Przeczytaj inne pytania na temat tagów