Wyłączyć logowanie SSH za pomocą hasła dla poszczególnych użytkowników?

3

Zapytałem niektórych dostawców usług hostingowych (Bluehost i Dreamhost) i obaj powiedzieli, że na współdzielonych kontach hostingowych nie mają możliwości wyłączenia logowania przez SSH za pomocą hasła. Oznacza to, że nawet jeśli skonfigurujemy klucze SSH, logowanie bez nich i za pomocą hasła hostingu będzie zawsze włączone, co w znacznym stopniu neguje większość zalet kluczy.

Z tego, co mogę znaleźć w Internecie, edycja /etc/ssh/sshd_configjest sposobem, aby wyłączyć logowanie za pomocą hasła, ale ponieważ jest to hosting dzielony, nie ma takiej możliwości.

To powiedziawszy, nigdy nie twierdzili, że nie da się tego zrobić (chociaż nie znalazłem sposobu), tylko że nie popierają tego. Czy istnieje sposób, aby to zrobić dla poszczególnych użytkowników, aby samemu to skonfigurować? A jeśli nie, dlaczego nie, jakie ograniczenie (techniczne / projektowe) w sposobie działania SSH to uniemożliwia?

użytkownik137369
źródło
Podczas gdy bezpieczeństwo jest ważne w każdym środowisku, jeśli ma kluczowe znaczenie dla Twojej misji, zdobądź własny serwer dedykowany lub VPS, w którym masz kontrolę nad wyłączeniem logowania za pomocą hasła. Mam jednego z wymienionych przez ciebie hostów, chociaż nie w 100% to samo, co wyłączanie haseł, stworzyłem długie losowe hasła o długości ponad 50 znaków z klawiaturą śmiecia na notatniku. Po dwukrotnym wklejeniu haseł w celu ustawienia i potwierdzenia, że ​​pliki notatnika nigdy nie zostały zapisane. To prawda, że ​​w końcu można go złamać, ale nie można go nigdy „znaleźć” ani zgadnąć. Wyobrażam sobie, że inne aspekty hostingu współdzielonego są mniej bezpieczne niż moja przepustka.
Tyson
Mam ponad 60 haseł znaków chronionych w menedżerze haseł. Nie o to chodzi. Chciałbym wiedzieć, czy można to zrobić, a jeśli nie, dlaczego nie.
user137369,
Można to zrobić, jeśli go skonfigurowali, nie ma możliwości skonfigurowania bez uprawnień administratora. Czy oni to zrobią? Nie, nie w przypadku tego modelu wyceny, w razie potrzeby przejdź na wyższy poziom.
Tyson
Tak, wiem o tym, mówię to samo w pytaniu. Moje pytanie brzmi dlaczego ? Dlaczego SSH na to nie pozwala? Czy to z założenia; czy jest to ograniczenie, które można pokonać, ale nie są nimi zainteresowani; czy jest to ograniczenie systemu bazowego? Co zapobiega temu?
user137369,
Jest to ograniczenie, które można przezwyciężyć, ale nie są zainteresowani. Również liczba użytkowników chcących / potrzebujących / wymagających będzie raczej niska w tym modelu cenowym. Użytkownicy, którzy należą do kategorii chcących / potrzebujących / wymagających, będą mieli inne powody, aby potrzebować uprawnień su, które pojawią się na następnym poziomie hostingu. Gdy masz już su / root, możesz sam go uruchomić. Robot panelu kontrolnego hosta jest su na twoim wspólnym hoście, mogą zaprogramować kroki, aby tak się stało, na podstawie pola wyboru, jeśli chcą.
Tyson

Odpowiedzi:

3

[Czy istnieje sposób] na wyłączenie logowania SSH za pomocą hasła dla poszczególnych użytkowników?

Nie. Ogólnie.

jakie jest ograniczenie (techniczne / projektowe) w sposobie działania SSH, które temu zapobiega?

Zapobiega temu konstrukcja lub specyfikacja protokołu SSH.

Jest to specyficzne dla implementacji ograniczenie w demonie SSH (lub usłudze)

Zwykły sshdprogram na platformach Linux (itp.) Został napisany w celu odczytania jednego pliku konfiguracyjnego, który dotyczy wszystkich użytkowników tego wystąpienia programu.

Wierzę, że byłoby możliwe napisanie demona SSH, który szuka dodatkowego pliku konfiguracyjnego w katalogu domowym użytkownika (na przykład). Nie zostało to jednak zrobione (prawdopodobnie niewystarczający popyt)


Czy jest coś w przybliżeniu równoważnego?

Możesz ustawić hasło logowania użytkownika na wyjątkowo długi i całkowicie losowy ciąg.

Może być możliwe użycie powłoki do ustawienia hasła zawierającego znaki, których nie można wprowadzić za pomocą klientów SSH w rodzaju podobnym do wykorzystywanego przez atakujących. Lub przynajmniej ustawić hasło, które jest znacznie dłuższe niż jakiekolwiek, które prawdopodobnie spróbują zastosować zwykłe metody oparte na słowniku.

RedGrittyBrick
źródło
1
Jedną rzeczą, jaką można zrobić to ręcznie edytować / etc / shadow i ustawić zaszyfrowane hasło x. Ponieważ nic nie szyfruje tego ciągu, nie ma prawidłowego hasła. Teraz, gdyby tylko istniał sposób, aby standardowe narzędzia zrobiły to za nas ...
Wyrzuć konto
-1

SSH DOES obsługuje tę funkcję, a jej implementacja jest dość trywialna - jak powiedzieli inni, potrzebuje współpracy twojego dostawcy. Zrobiłbyś to, zakładając konto użytkownika bez ważnego hasła (na mojej dystrybucji możesz to zrobić, nie wpisując hasła kilka razy w adduser, ale zawsze możesz edytować / etc / shadow i zmienić zaszyfrowane hasło na „ * ”lub„! ”- tyle kont zostanie już skonfigurowanych.

Drugim krokiem jest zainstalowanie klucza publicznego w authorised_hosts - to eliminuje potrzebę sprawdzania hasła przez ssh w celu uzyskania dostępu.

Davidgo
źródło
Tak, podobnie jak wiele razy komentowałem i wspominałem w pierwotnym pytaniu, rozumiem, że można zrobić z interwencją gospodarza. Moje pytanie brzmi: dlaczego nie można obejść się bez interwencji hosta dla poszczególnych użytkowników.
user137369,
-1

W przypadku serwera OpenSSH, aby wyłączyć uwierzytelnianie hasła dla poszczególnych użytkowników, należy dodać następujące wiersze do pliku sshd_config :

Match user someuser
PasswordAuthentication no

Szczegółowe informacje można znaleźć w instrukcji sshd_config . Po edycji sshd_config koniecznie uruchom ponownie sshd.

Kenster
źródło
2
Jak mówię w pierwotnym pytaniu i wielu komentarzach, nie mam dostępu do /etc/ssh/sshd_config.
user137369
I nie miałoby to znaczenia, gdybyś to zrobił. To nie jest „na użytkownika”. Dotyczy to całego systemu.
HörmannHH