Ogranicz dostęp SSH oparty na haśle dla każdego użytkownika, ale zezwól na uwierzytelnianie klucza

22

Czy można wyłączyć dostęp do PASSWORD SSH do użytkownika, ale zezwolić na uwierzytelnianie klucza dla poszczególnych użytkowników? Mam na myśli, że mam użytkownika, któremu nie chcę udzielać dostępu na podstawie hasła, ALE nie chcę go używać tylko do uwierzytelniania klucza w celu uzyskania dostępu do serwera (serwerów). Dzięki

żyr
źródło

Odpowiedzi:

49

Możesz dodać sekcje „Dopasuj”, aby dopasować do określonych użytkowników lub grup na dole sshd_config, na przykład:

Match user stew
PasswordAuthentication no

lub

Match group dumbusers
PasswordAuthentication no
gulasz
źródło
9
Unikałbym wcięć, ponieważ sugeruje to, że wpływają tylko na linie wcięcia, Matchpodczas gdy w rzeczywistości wpływa to na całą konfigurację do następnej Matchdyrektywy. Może to być mylące dla kogoś, kto nie zna składni.
Michael Mior
2
@MichaelMior jest sposób na „EndMatch”?
Nick T
4
@NickT Matchdziała aż do następnego Matchlub Hostsłowa kluczowego. Możesz po prostu użyć Match user *.
Michael Mior
@MichaelMior Czy to oznacza, że ​​jeśli użyjesz Match user ZaQwEdCxS, możesz uczynić zestaw linii konfiguracyjnych użytecznymi dla nikogo, tymczasowo lub na stałe?
Tripp Kinetics
Oznaczałoby to, że wszystkie wiersze konfiguracji będą miały zastosowanie tylko do nazwanych użytkowników ZaQwEdCxS. Jeśli masz inne pytanie, powinieneś zadać nowe pytanie.
Michael Mior
4

Wystarczy zablokować hasła użytkowników, których nie chcesz logować za pomocą haseł:

usermod -L <user>

Następnie umieść poprawny klucz publiczny w swoim .ssh/authorized_keyspliku, a będą oni mogli zalogować się tylko za pomocą odpowiedniego klucza prywatnego, ale nie za pomocą hasła.

Uwaga: spowoduje to uszkodzenie sudo, chyba że użytkownik ma NOPASSWD: we wpisie visudo

Oliver
źródło
8
To także złamie sudo. Być może nie jest to problem w tym przypadku, ale należy o tym wspomnieć.
EEAA
Tak, to prawda. Powinienem o tym wspomnieć.
Oliver
1
Niektóre konfiguracje OpenSSH (np. Myślę, że Ubuntu 14.04 w domyślnej konfiguracji) nie wpuszczają zablokowanych użytkowników, nawet za pośrednictwem
kluczy
@NilsToedtmann czy możesz podać źródło do weryfikacji? Jeśli tak, to bardzo ważne jest odnotowanie w odpowiedzi.
Metagrapher,
-3

powinieneś zajrzeć

/etc/ssh/sshd_config

Myślę, że to, czego szukasz

PasswordAuthentication yes

zmień na no i nie zapomnij zrestartować sshd

Alexus
źródło
2
Zdaję sobie z tego sprawę - jest to jednak ustawienie GLOBALNE - chcę bardziej szczegółową opcję - dlatego powiedziałem „dla poszczególnych użytkowników” - chcę tego tylko dla niektórych użytkowników (używanych do komunikacji w klastrze między serwerami w klastrze) - nie dla wszystkich użytkowników
gyre
och racja, przepraszam, że nie przeczytałem go poprawnie, więc to, co @stew zaleca, jest drogą
Alex