Bezpieczne logowanie do Raspberry Pi bez hasła

Zawsze mówimy, żeby wybierać długie, ciężkie do zgadnięcia hasło dla wszystkich kont, więc jak możemy zalogować się do Raspberry Pi bez jego wprowadzania wykorzystując SSH (Secure Shell)?

Hasła nie są najbezpieczniejszą metodą logowania. Mogą zostać odgadnięte lub złamane przez wykorzystanie miliona kombinacji słów lub powszechnych haseł. Jest lepsza metoda skutecznej ochrony konta, używając tajników które zna tylko Raspberry Pi i komputer, przez który się logujesz dzięki odpowiednim certyfikatom.

Do tego będzie potrzebne narzędzie do generowania prywatnej/publicznej pary kluczy na Twoim komputerze, z którego zamierzasz się logować. Klucz prywatny musisz zachować w tajemnicy i nikomu go nie udostępniać. Jednak klucz publiczny możesz powierzyć komu tylko chcesz, jest on bezużyteczny bez klucza prywatnego.

Jest wiele różnych możliwości generowania pary kluczy, popularną aplikacją stworzoną do tego celu jest puTTygen. Jest częścią aplikacji SSH puTTy i klienta Telnet dla systemu Windows. Możesz ją pobrać z https://www.putty.org/

Generowanie pary kluczy

Kiedy zainstalujesz aplikację, uruchom puTTygen. Wyświetli się prosty ekran:

PuTTy Key Generator

Nie wybiera typu RSA, nie jest on bezpieczny. Wybierz typ ED25519 i kliknij przycisk Generate. Zostaniesz poproszony o przeniesienie kursora myszy w pustą stronę okna. Da to programowi „entropię” lub „losowość”, która jest wymagana do wygenerowania dobrego klucza prywatnego.

Generating Keys

Nie wpisuj hasła (Key passphare). Jeśli to zrobisz, będziesz o to proszony za każdym razem, gdy spróbujesz się zalogować do Raspberry Pi.

Może być użyteczna edycja komentarza klucza, zmień go na nazwę swojego komputera PC, z którego się logujesz

Zapisz te dwa klucze (publiczny i prywatny) do plików na Twoim komputerze, nazywając je odpowiednio „myssh.pub” i „myssh.ppk”. Pamiętaj żeby trzymać bezpiecznie klucz prywatny i utworzyć kopię zapasową preferowanych haseł.

Teraz zainstaluj publiczny klucz na swoim Raspberry Pi i klucz prywatny na kliencie SSH na Twoim komputerze PC.

Instalacja klucza publicznego

Teraz zaloguj się do swojego Raspberry Pi używając swojej obecnej preferowanej metody, SSH lub hasłem, czy VNC. Owtórz okno terminala i utwórz nowy folder:

cd ~
mkdir .ssh
cd ~/.ssh


Następnie należy utworzyć nowy autoryzowany plik klucza i skopiować do niego klucz publiczny, znajduje się on w górnym polu okna puTTygen:

Alt: klucz publiczny

Utwórz i edytuj plik za pomocą:

nano ~/.ssh/authorized_keys

Skopiuj i wklej klucz publiczny do tego pliku i zamknij go po zapisaniu, naciskając Ctrl+X, odpowiadając „Y” na żądanie zapisania i naciskając klawisz powrotu.
Jeśli chcesz uzyskać dostęp do swojego Raspberry Pi z innych komputerów, możesz dodać więcej niż jeden klucz publiczny do pliku authorized_keys.

Konfigurowanie klienta SSH

Otwórz program PuTTy. Zostanie wyświetlona lista zapisanych sesji lub komputerów, które wcześniej zapisałeś:

PuTTy

Wpisz nazwę hosta lub adres IP Raspberry Pi, do którego chcesz się logować w sekcji „Host Name”, pozostaw port 22 i typ połączenia SSH.

Przejdź do podkategorii Data w kategorii Connection. Wprowadź „pi” w sekcji „Auto-login username”:

Configuring the SSH User

Rozwiń listę kategorii SSH klikając „+” po lewej stronie:

The SSH Options

Wybierz „Auth”:

PuTTy Auth Configuration

Wprowadź ścieżkę dostępu do pliku z Twoim kluczem prywatnym lub kliknij Browse i wybierz plik .ppk zapisany w PuTTygen.

PuTTy - Setting the Private Key

Wróć do okna sesji wybierając „Session” na górze listy. Wprowadź nazwę Raspberry Pi w sekcji „Saved Sessions” i kliknij „Save”.

PuTTy - Saving the Configuration

Teraz kliknij „Open”. Otworzy się okno terminala Twojego Raspberry Pi, na którym jesteś zalogowany.

SSH - Logging In

Kończenie konfiguracji

Kiedy już przetestowałeś logowanie się przy użyciu pary kluczy, możesz wyłączyć logowanie się przy pomocy nazwy użytkownika i hasła.

„ssh daemon” to usługa na Raspberry Pi umożliwiająca logowanie się używając SSH, potrzebna do zatrzymania pytania o hasło i nazwę użytkownika. W tym celu należy edytować plik sshd_config:

sudo nano /etc/ssh/sshd_config

Edytuj linię „PasswordAuthentication” przez odkomentowanie jej (usuń znaczek #) i zmień opcję z „yes” na „no”

PasswordAuthentication no 

Teraz należy zresetować usługę „ssh daemon” poprzez zresetowanie Raspberry Pi:

sudo reboot

Ochrona pliku „authorized_keys”

Jeżeli inny użytkownicy, którzy mają konta na Raspberry Pi inne niż „pi”, mogą być w stanie wyświetlić plik „authorized_keys”. Dlatego dobrą praktyką jest ochrona pliku przed wszystkimi użytkownikami oprócz „pi”, pozwalając tylko jemu na jego podgląd i edycję.
Wpisz następujące polecenie do terminala:

chmod 700 ~/.ssh/authorized_keys 

Wniosek

Teraz za każdym razem, gdy używasz PuTTy do logowania się do Raspberry Pi, dostaniesz się do niego bez podawania hasła.

Zobacz również nasz poradnik „Jak zablokować ekran na Raspberry Pi„.

Źródło: https://thepihut.com/blogs/raspberry-pi-tutorials/securely-logging-into-a-raspberry-pi-without-a-password

Dodaj komentarz