Go to main content

VPS: Dwuskładnikowe uwierzytelnianie SSH

Ten poradnik został stworzony z wykorzystaniem następujących produktów:

(Szczegóły mogą się różnić w zależności od produktów różnych dostawców, ale główne koncepcje pozostają takie same)

Wprowadzenie

Dwuskładnikowe uwierzytelnianie SSH Google, znane jako Google Authenticator SSH, podnosi poziom bezpieczeństwa dostępu SSH (Secure Shell) poprzez dodanie drugiej warstwy uwierzytelniania. Choć SSH już zapewnia bezpieczne połączenie szyfrowane zdalnie z serwerem, integracja 2FA zwiększa ochronę, wymagając od użytkowników nie tylko hasła, ale także jednorazowego kodu weryfikacyjnego generowanego przez Google Authenticator. W tym poradniku pokażemy, jak zainstalować i skonfigurować usługę Google Authenticator SSH na serwerze Linux.

Instalacja

Najpierw musisz zainstalować Google Authenticator na swoim VPS z Linuxem. Wykonaj następujące polecenie:

sudo apt install libpam-google-authenticator

Zostaniesz poproszony o wpisanie "Y", aby potwierdzić instalację pakietu — wpisz to, naciśnij Enter i Google Authenticator zostanie zainstalowany!

Uruchom Google Authenticator, wpisując 'google-authenticator'. Upewnij się, że okno terminala jest wystarczająco duże, aby wyświetlić kod QR, w przeciwnym razie naciśnij "CTRL+C" i wpisz polecenie ponownie.

Zostaniesz ponownie zapytany, czy chcesz kontynuować — wpisz "Y", aby zaakceptować. Pojawi się kod QR. Otwórz aplikację Authenticator na smartfonie i zeskanuj kod QR. W tym przykładzie używamy Google Authenticator:

Pamiętaj, aby skopiować kody zapasowe — każdy z nich można użyć jednokrotnie, gdybyś stracił dostęp do aplikacji.

Aplikacja pokaże Ci teraz kody potrzebne do logowania. Wygląda to mniej więcej tak:

Pojawią się teraz następujące pytania:

  1. Czy chcesz zapisać konfigurację Google Authenticator?
  2. Czy chcesz mieć tylko jedno logowanie co 30 sekund?
  3. Czy czas ważności kodu ma zostać wydłużony?
  4. Czy ma być możliwe tylko trzy logowania co 30 sekund? (Ochrona przed atakami Brute Force)

Dla bezpieczeństwa zalecamy potwierdzić wszystkie odpowiedzi "Yes".

Konfiguracja

Teraz musimy dostosować Google Authenticator, aby był używany podczas logowania. Wymaga to dwóch zmian.

/etc/ssh/sshd_config

Aktywuj wymagane moduły w pliku /etc/ssh/sshd_config. Otwórz go poleceniem:

sudo nano /etc/ssh/sshd_config

Jesteś teraz w edytorze tekstu. Poruszaj się strzałkami, swobodnie usuwaj i wpisuj tekst. Aby zapisać plik, naciśnij 'CTRL + X', potem 'Y', a na końcu 'Enter'.

Upewnij się, że dwie linie 'UsePAM' oraz 'ChallengeResponseAuthentication' są ustawione na 'yes', tak jak tutaj:

Zapisz plik i zrestartuj SSH poleceniem:

sudo systemctl restart ssh

/etc/pam.d/sshd

Teraz dodajemy Google Authenticator do procesu logowania w pliku /etc/pam.d/sshd. Otwórz go poleceniem:

sudo nano /etc/pam.d/sshd

Przewiń na koniec pliku i dodaj linię:

auth required pam_google_authenticator.so

Zapisz plik (CTRL + X, Y, Enter).

Testowanie dostępu

Czas na pierwsze logowanie z 2FA. Po wykonaniu powyższych kroków wystarczy, że ponownie połączysz się przez SSH.

Wpisz swoje hasło jak zwykle. Następnie zostaniesz poproszony o kod — wpisz aktualny kod 2FA z aplikacji.

I gotowe — jesteś zalogowany!

Podsumowanie

Gratulacje, pomyślnie włączyłeś i skonfigurowałeś 2FA dla SSH! Jeśli masz pytania lub problemy, skontaktuj się z naszym supportem, który jest do Twojej dyspozycji codziennie!