Najpopularniejszym sposobem na logowanie do konsoli w systemie Linux jest usługa SSH. Aby podnieść bezpieczeństwo logowania i uniknąć przejęcia przez osoby niepowołane naszych poświadczeń, warto użyć identyfikacji za pomocą pary kluczy.

Jest to jedna z najbezpieczniejszych metod, a polega ona na wygenerowaniu pary kluczy: prywatnego (używanego do logowania) oraz publicznego (przechowywanego na serwerze).

Aby włączyć taką metodę identyfikacji należy:

  1. Utworzyć parę kluczy

ssh-keygen

W procesie będziemy musieli podać hasło do zabezpieczenia klucza, folder do którego ma być zapisany plik.
Po poprawnym zakończeniu operacji, powinno to wyglądać w ten sposób

Teraz, aby klucze mogły być używane, należy wykonać komendę która doda nasz klucz publiczny do zaufanych

ssh-copy-id -i (ścieżka do naszego zapisanego klucza .pub) (nazwa_użytkownika@host)

Gdy to już jest zrobione, musimy przenieść nasz klucz prywatny na maszynę z której będziemy łączyć się z naszym serwerem.
Jeżeli korzystamy do połączenia z terminalem programu PuTTY, musimy najpierw na podstawie klucza prywatnego wygenerować klucz w formacie .ppk. Aby to zrobić trzeba uruchomić program który dostarczany jest wraz z instalacją PuTTY – PuTTYGen. Po jego otwarciu wybieramy opcję załadowania istniejącego klucza prywatnego

Następnie wyszukujemy nasz klucz który pobraliśmy z serwera a po jego załadowaniu wybieramy opcję zapisania klucza prywatnego

Po jego zapisaniu, wchodzimy do programu PuTTY, tam w ustawieniach autoryzacji wskazujemy nasz klucz prywatny z rozszerzeniem .ppk

Teraz wpisujemy adres naszego serwera i łączymy się, a następnie wpisujemy nazwę użytkownika dla którego wygenerowaliśmy klucz, a później hasło którym zabezpieczyliśmy klucz

Możemy także zwiększyć bezpieczeństwo i całkowicie wyłączyć logowanie za pomocą hasła a jedynie używać kluczy. Aby to zrobić musimy edytować plik /etc/ssh/sshd_config tak aby zmienić poniższe wartości na:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Po zapisaniu zmian w pliku musimy przeładować proces ssh

sudo systemctl ssh reload

Od tej pory możemy zalogować się na serwer jedynie posiadając klucze dostępu.