Jak mogę zablokować własne konto przed zdalnym logowaniem ssh za pomocą hasła?


10

Nie chcę całkowicie wyłączać zdalnego logowania za pomocą hasła, ale chcę, aby moje konto było dostępne tylko z uwierzytelnianiem za pomocą pary kluczy (istnieją inni użytkownicy, którzy chcą używać haseł do logowania). Czy można to zmienić dla poszczególnych użytkowników, najlepiej bez zmiany ustawień systemowych?

Aby to wyjaśnić, moje konto ma dostęp sudo, więc nie chcę blokować hasła.

Odpowiedzi:


9

Możesz użyć opcji Dopasuj w sshd_config

Dopasuj Wprowadza blok warunkowy. Jeśli wszystkie kryteria w wierszu Dopasuj są spełnione, słowa kluczowe w kolejnych wierszach zastępują te ustawione w globalnej sekcji pliku konfiguracyjnego, aż do kolejnej linii Dopasowania lub końca pliku. [1]

Tak więc, na koniec tego pliku można określić:

Match User yourusername
PasswordAuthentication no

Zobacz man 5 sshd_configwszystkie dostępne opcje.

[1] http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5


To już dobrze, ale chcę sprawdzić, czy da się obejść bez edycji sshd_config.
phunehehe

2
Biorąc pod uwagę, że chcesz wprowadzić zmiany w systemie, tj.
Takie

a co z ~ / .ssh / config? Próbowałeś podać tam ustawienia?
ttyS0

1
AFAK ~ / .ssh / config dla klienta, a nie serwera.
Adam Byrtek

1

Odpowiedź od jasonwryan będzie we właściwy sposób, aby to zmienić. Jedyne, co chciałbym dodać, to to, że możesz ustawić dopasowanie na podstawie grupy, aby wszyscy użytkownicy w grupie kół byli zobowiązani do korzystania z uwierzytelniania klucza, podczas gdy inni mogli używać haseł.

Wiem, że chcesz to zrobić bez zmiany plików konfiguracyjnych systemu, ale istnieje dobry powód, dla którego nie będzie to możliwe. W twojej głowie ma sens ustanowienie bezpieczniejszej polityki logowania, ale tylko dlatego, że według ciebie jest to bezpieczniejsza opcja, nie zmienia faktu, że nadal jest to zmiana wymagań systemowych dotyczących logowania zdalny użytkownik.

Aby zrozumieć, dlaczego jest to problem, wyobraź sobie scenariusz na odwrót. Administrator systemu (który może zmienić pliki konfiguracyjne systemu) ustawia system na logowanie tylko na podstawie klucza. Następnie pojawia się użytkownik, który ma dostęp tylko do własnego pliku użytkownika i ustawia swoje konto, aby umożliwić uwierzytelnianie hasłem, zastępując zasady systemowe. BEEEEEEP . Problem bezpieczeństwa!

Czy to wyjaśnia, dlaczego zmiana, którą chcesz wprowadzić, jest możliwa tylko z pliku konfiguracji systemu?


Trudno jest myśleć w ten sposób, ponieważ gdybym był zwykłym użytkownikiem, który nie wykonuje sudo, z radością mogę skonfigurować klucze, a następnie zablokować hasło, czyniąc moje konto „uwierzytelnianiem tylko kluczem”.
phunehehe

Innym pomysłem jest to, że mogę zablokować hasło za każdym razem, gdy się wylogowuję, co powinno uniemożliwić zalogowanie się przy użyciu hasła do mojego konta. Następnie, gdy zaloguję się za pomocą moich kluczy, mogę ponownie włączyć hasło do sudo. Oczywiście nie jest to dobre rozwiązanie, ale sprawia, że ​​myślę, że to możliwe.
phunehehe

1
Możesz to zrobić tylko dlatego, że administrator systemu zezwolił na uwierzytelnianie klucza i dodajesz ograniczenia tylko dla siebie, niczego nie zmieniając. Wyłączenie hasła powoduje jedynie ustawienie niepoprawnej wartości, nie zmienia to uwierzytelnienia demona systemowego.
Caleb

„dodawanie ograniczeń dla siebie, nic nie zmienianie”, jest dokładnie tym, co chcę zrobić.
phunehehe

@Caleb: Nie byłoby problemu z bezpieczeństwem, pozwalając authorized_keysna wprowadzenie dodatkowych ograniczeń, jak chce phunehe. Na przykład authorized_keysmożna ograniczyć niektóre klawisze do niektórych poleceń.
Gilles „SO- przestań być zły”

0

Dodanie ograniczeń dla siebie, nic nie zmieniając

Dlaczego nie po stronie klienta, jeśli jest pewne, że ssh będzie klientem używanym do prób logowania? Jeśli tak, spróbuj wprowadzić zmiany w ssh_config zamiast sshd_config. Sprawdź parametr „PasswordAuthentication No” i PreferredAuthentications

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.