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_config
jest 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?
źródło
Odpowiedzi:
Nie. Ogólnie.
Zapobiega temu konstrukcja lub specyfikacja protokołu SSH.
Jest to specyficzne dla implementacji ograniczenie w demonie SSH (lub usłudze)
Zwykły
sshd
program 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.
źródł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 ...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.
źródło
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 :
Szczegółowe informacje można znaleźć w instrukcji sshd_config . Po edycji sshd_config koniecznie uruchom ponownie sshd.
źródło
/etc/ssh/sshd_config
.