Czy ktoś może wyjaśnić „PasswordAuthentication” w pliku / etc / ssh / sshd_config?

28

Na tej stronie podane wyjaśnienie to:

Opcja PasswordAuthentication określa, czy powinniśmy używać uwierzytelniania opartego na haśle. Dla silnego bezpieczeństwa ta opcja musi być zawsze ustawiona na tak.

Ale nie zawiera scenariuszy przypadków użycia, które wyjaśniają, kiedy tak lub nie byłoby właściwe. Czy ktoś może bardziej szczegółowo opracować?

Zeta2
źródło

Odpowiedzi:

21

Twój link wskazuje na dokumentację 10 lat przedawnienia.

SSH obsługuje wiele sposobów uwierzytelniania użytkowników, najczęstszym z nich jest pytanie o login i hasło, ale można również uwierzytelnić użytkownika login i klucz publiczny. Jeśli ustawisz PasswordAuthentication na no, nie będziesz już mógł używać loginu i hasła do uwierzytelnienia i musisz zamiast tego użyć loginu i klucza publicznego (jeśli PubkeyAuthentication jest ustawiony na yes)

promień
źródło
ok, więc tylko dla autoryzowanego_klucza2: (1) skomentuj plik AuthorizedKeysFile (2) HasłoAuthentication no (3) PubkeyAuthentication yes (4) ChallengeResponseAuthentication no (5) przetestuj go ... jeśli nadal akceptuje hasła, dodaj także UsePam no
YumYumYum
Użyj tych ustawień: fpaste.org/114544/04202660, gdy zezwalasz tylko na logowanie SSH za pomocą ~ / .ssh /
Author_keys2,
1
i jaka jest jego DOMYŚLNA wartość? Mam na myśli, co jeśli nie podam żadnego „Uwierzytelnienia hasła”?
Riccardo SCE,
@TSERiccardo: Nikt nie odpowiedział na twoje pytanie? Szkoda, obwiniaj TAK!
Timo,
1
@RiccardoSCE Według strony podręcznika sshd_config domyślnym ustawieniem funkcji PasswordAuthentication jest „yes”.
Rozgwiazda
53

Należy pamiętać, że ustawienie PasswordAuthentication nie kontroluje WSZYSTKICH uwierzytelnień opartych na hasłach. ChallengeResponseAuthentication zwykle pyta również o hasła.

Uwierzytelnianie hasła kontroluje obsługę schematu uwierzytelniania „hasłem” zdefiniowanego w RFC-4252 (sekcja 8). ChallengeResponseAuthentication kontroluje obsługę schematu uwierzytelniania „interaktywnego z klawiaturą” zdefiniowanego w RFC-4256. Schemat uwierzytelniania „interaktywny za pomocą klawiatury” mógłby teoretycznie zadać użytkownikowi dowolną liczbę pytań o wielu twarzach. W praktyce często pyta tylko o hasło użytkownika.

Jeśli chcesz całkowicie wyłączyć uwierzytelnianie oparte na hasłach, ustaw ZARÓWNO PasswordAuthentication i ChallengeResponseAuthentication na „no”. Jeśli jesteś nastawiony na pasy i szelki, zastanów się również nad ustawieniem UsePAM na „nie”.

Uwierzytelnianie oparte na kluczu publicznym / prywatnym (włączane przez ustawienie PubkeyAuthentication) to osobny rodzaj uwierzytelnienia, który oczywiście nie obejmuje wysyłania haseł użytkowników na serwer.

Niektórzy twierdzą, że korzystanie z ChallengeResponseAuthentication jest bezpieczniejsze niż PasswordAuthentication, ponieważ trudniej jest je zautomatyzować. Dlatego zalecają pozostawienie PasswordAuthentication wyłączone, a ChallengeResponseAuthentication włączone. Ta konfiguracja zachęca również (ale niekoniecznie uniemożliwia) korzystanie z uwierzytelniania publickey w przypadku zautomatyzowanych logowań systemowych. Ponieważ jednak SSH jest protokołem sieciowym, serwer nie ma sposobu, aby zagwarantować, że odpowiedzi na ChallengeResponseAuthentication (inaczej „interaktywna klawiatura”) są faktycznie dostarczane przez użytkownika siedzącego przy klawiaturze, o ile wyzwania są zawsze i polega tylko na pytaniu użytkownika o hasło.

Izzy
źródło
7
Byłbym wdzięczny za wyjaśnienie tego, co UsePAM...
Alexey,
3

Uwierzytelnianie hasła jest najłatwiejszą implementacją, ponieważ nie ma nic do zrobienia. Część przeciwna polega na tym, że wysyłasz swoje hasło za pośrednictwem szyfrowanego połączenia na serwer. Może to stanowić problem z bezpieczeństwem, jeśli serwer został przejęty, ponieważ można wtedy przechwycić hasło.
W przypadku klucza publicznego twoje hasło nie jest przesyłane do serwera, jest bardziej bezpieczne, ale wymaga większej konfiguracji.

kaklon
źródło
Ta odpowiedź jest trochę stara, ale chciałbym coś dodać: Wspaniałą rzeczą w Uwierzytelnianiu Pubkey jest to, że żadne tajemnice nie są przekazywane do serwera. Klucz prywatny pozostaje tajny na twoim komputerze, tzn. Nie możesz przypadkowo przesłać żadnego rodzaju tajemnicy do zainfekowanego lub MITM serwera. Więc Pubkey jest zdecydowanie korzystniejszy niż autoryzacja hasła. Ale w każdym razie tak. Autoryzacja hasła jest znacznie łatwiejsza do wdrożenia.
Jan D
To nie byłoby kłopotliwe ustawienie, tak samo jak lenistwo, aby tego nie robić.
sudo
0

Możesz ustawić tę opcję na no podczas używania kluczy lub wymusić ich użycie.

Ignacio Vazquez-Abrams
źródło