Skip to content

Jak zabezpieczyć SSH za pomocą dwuetapowego uwierzytelniania Google Authenticator

7 de lipiec de 2021
google authenticator ssh header 1024x390 1

Chcesz zabezpieczyć swój serwer SSH za pomocą łatwego w użyciu uwierzytelniania dwuskładnikowego? Firma Google dostarcza oprogramowanie niezbędne do zintegrowania systemu haseł jednorazowych (TOTP) opartych na czasie w Google Authenticator z serwerem SSH. Podczas łączenia będziesz musiał wprowadzić kod z telefonu.

Google Authenticator nie „telefonuje do domu” do Google — cała praca odbywa się na Twoim serwerze SSH i telefonie. W rzeczywistości Google Authenticator to całkowicie open-source, dzięki czemu możesz nawet samodzielnie zbadać jego kod źródłowy.

Zainstaluj Google Authenticator

Aby zaimplementować uwierzytelnianie wieloskładnikowe za pomocą Google Authenticator, potrzebujemy modułu PAM Google Authenticator o otwartym kodzie źródłowym. PAM to skrót od „pluggable authentication module” – jest to sposób na łatwe podłączenie różnych form uwierzytelnienia do systemu Linux.

Repozytoria oprogramowania Ubuntu zawierają łatwy do zainstalowania pakiet dla modułu Google Authenticator PAM. Jeśli twoja dystrybucja Linuksa nie zawiera odpowiedniego pakietu, musisz go pobrać z Strona pobierania Google Authenticator na Google Code i skompiluj go samodzielnie.

Aby zainstalować pakiet na Ubuntu, uruchom następujące polecenie:

sudo apt-get install libpam-google-authenticator


(Spowoduje to instalację tylko modułu PAM w naszym systemie – będziemy musieli aktywować go ręcznie dla logowania SSH.)

1625657086 410 Jak zabezpieczyc SSH za pomoca dwuetapowego uwierzytelniania Google Authenticator

Utwórz klucz uwierzytelniający

Zaloguj się jako użytkownik, za pomocą którego będziesz logować się zdalnie, i uruchom google-uwierzytelniający polecenie, aby utworzyć tajny klucz dla tego użytkownika.

Zezwól poleceniu na zaktualizowanie pliku Google Authenticator, wpisując y. Zostaniesz poproszony o kilka pytań, które pozwolą ci ograniczyć użycie tego samego tymczasowego tokena bezpieczeństwa, wydłużyć okno czasowe, w którym można używać tokenów, i ograniczyć dozwolone próby dostępu, aby utrudnić próby łamania metodą brute-force. Wszystkie te opcje zamieniają pewne bezpieczeństwo na łatwość użytkowania.

1625657086 263 Jak zabezpieczyc SSH za pomoca dwuetapowego uwierzytelniania Google Authenticator

Google Authenticator przedstawi Ci tajny klucz i kilka „awaryjnych kodów zdrapek”. Zapisz awaryjne kody zdrapek w bezpiecznym miejscu — można ich użyć tylko raz i są one przeznaczone do użycia w przypadku zgubienia telefonu.

1625657087 84 Jak zabezpieczyc SSH za pomoca dwuetapowego uwierzytelniania Google Authenticator

Wprowadź tajny klucz w aplikacji Google Authenticator na telefonie (oficjalne aplikacje są dostępne dla Android, iOS i Blackberry). Możesz także skorzystać z funkcji skanowania kodów kreskowych – przejdź do adresu URL znajdującego się w górnej części danych wyjściowych polecenia i zeskanuj kod QR aparatem telefonu.

1625657087 83 Jak zabezpieczyc SSH za pomoca dwuetapowego uwierzytelniania Google Authenticator

Będziesz teraz mieć na telefonie stale zmieniający się kod weryfikacyjny.

1625657087 950 Jak zabezpieczyc SSH za pomoca dwuetapowego uwierzytelniania Google Authenticator


Jeśli chcesz zalogować się zdalnie jako wielu użytkowników, uruchom to polecenie dla każdego użytkownika. Każdy użytkownik będzie miał swój własny tajny klucz i własne kody.

Aktywuj Google Authenticator

Następnie będziesz musiał wymagać Google Authenticator do logowania SSH. Aby to zrobić, otwórz /etc/pam.d/sshd plik w twoim systemie (na przykład z sudo nano /etc/pam.d/sshd polecenie) i dodaj do pliku następujący wiersz:

wymagane uwierzytelnienie pam_google_authenticator.so

Następnie otwórz /etc/ssh/sshd_config plik, zlokalizuj WyzwanieOdpowiedźUwierzytelnianie i zmień go na następujący:

WyzwanieOdpowiedźUwierzytelnianie tak

(Jeśli WyzwanieOdpowiedźUwierzytelnianie linia nie istnieje, dodaj powyższą linię do pliku.)

Na koniec uruchom ponownie serwer SSH, aby zmiany zaczęły obowiązywać:

restart ssh usługi sudo

1625657087 613 Jak zabezpieczyc SSH za pomoca dwuetapowego uwierzytelniania Google Authenticator

Przy każdej próbie zalogowania się przez SSH zostaniesz poproszony o podanie zarówno hasła, jak i kodu Google Authenticator.

1625657087 90 Jak zabezpieczyc SSH za pomoca dwuetapowego uwierzytelniania Google Authenticator

Czy ten post był pomocny?