Co znamená "bez hesla" v souboru sshd_config?

106

Právě jsem na svém serveru nainstaloval Ubuntu 14.04 a když jsem narazil na tento souborsshd_config, nastavil jsem všechny konfigurační soubory:

# Authentication:
LoginGraceTime 120
PermitRootLogin without-password
StrictModes yes

To mě velmi znepokojovalo. Myslel jsem, že je možné, že se někdo může přihlásit do mého serveru jako root bez hesla.

Snažil jsem se připojit k serveru jako root pomocí:

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:  

Zadal jsem prázdné heslo a neopustil mě, což bylo úleva. Takže můj dotaz je: co znamená bez hesla a proč je to výchozí v Ubuntu 14.04?

    
dané John 18.04.2014 03:12

4 odpovědi

127

Z manpage :

  

PermitRootLogin

     

Určuje, zda se může root přihlásit pomocí ssh (1). Argument   musí být "ano", "bez hesla", "pouze nucené příkazy" nebo   "ne". Výchozí hodnota je "ano".

     

Pokud je tato možnost nastavena na "bez hesla", heslo   autentizace je zakázána pro root.

     

Pokud je tato možnost nastavena na "pouze nucené příkazy", použijte kořenové přihlašovací jméno   ověření veřejného klíče bude povoleno, ale pouze pokud   Byla zadána možnostcommand (což může být užitečné pro přijetí   vzdálené zálohování, i když není normální přihlašování root). Všechno   Jiné metody ověřování jsou zakázány pro kořen.

     

Pokud je tato možnost nastavena na hodnotu "ne", není povoleno přihlášení uživatele root.

Takžewithout-password umožňuje kořenové přihlášení pouze s ověřením veřejných klíčů. To se často používá u shell skriptů a automatizovaných úloh.

    
odpověděl Florian Diesch 18.04.2014 03:26
15

Toto nastavení v podstatě neplatí, pokud používáte autentizaci PAM. Ve spodní části konfiguračního souborusshd_config najdete:

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

Výchozí nastavení pro Ubuntu je použití autentizace PAM:

UsePAM yes
    
odpověděl Atari911 15.11.2014 18:34
3

Všimněte si, že existují oprávněné důvody pro přihlášení přes root (ale pomocí šifrovacích klíčů a hesla nikdy ). Typickým příkladem je vzdálená synchronizace dvou serverů (jedna z nich se používá jako selhání). Vzhledem k tomu, že struktura musí být totožná, vyžaduje se často heslo uživatele root.

Zde je příklad použití synchronizace pro unison: Odkaz

    
odpověděl Gwyneth Llewelyn 17.01.2015 21:26
0

V novějších verzích sshd byl "bez hesla" změněn na "prohibit-password".

Oba verze fungují, pravděpodobně nejlépe použít "prohibit-password", pokud můžete: vysvětluje se lépe.

    
odpověděl teknopaul 23.03.2018 00:12