• Dwustopniona autentykacja przy logowaniu po ssh

    dodany przez Przemysław Sikora

    Bezpieczeństwo systemów informatycznych jest tematem, który „wałkuje” się nieustannie. Czy daje to efekty … różnie. Nie wszyscy rozumieją, żeby nie zapisywać hasła np. do poczty pod ikoną programu pocztowego lub na karteczce nalepionej na monitorze. Zostawmy tą kwestię i skupmy się na dodatkowej autentykacji użytkowników łączących się np. po ssh.

    Niezbędne będzie repozytorium EPEL. Przystępujemy do instalacji i wydajemy poniższe polecenie:

    yum install google-authenticator

    Następnie uruchamiamy zainstalowane narzędzie z użytkownika któremu chcemy włączyć dwustopniową autentykację. Efekt powinien być zbliżony do poniższego:
    [root@ssh ~]# google-authenticator
    https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@ssh%3Fsecret%3DND4CGCVFJBTXOWLQ
    Your new secret key is: ND4CGCVFJBTXOWLQ
    Your verification code is 649868
    Your emergency scratch codes are:
    34713621
    35208507
    15091687
    65507993
    99045025

    Do you want me to update your "~/.google_authenticator" file (y/n) <-odpowiadamy twierdząco


    Pamiętajmy, iż jeżeli nie wykonamy powyższych działań przy innych użytkownikach, logujących po ssh, nie uzyskają oni dostępu do serwera. Zaleca się zapisanie powyższych pięciu kodów awaryjnych. Przydadzą się, jeśli nie będziemy mieli dostępu do naszej aplikacji generującej tokeny jednorazowe.


    Skorzystanie z powyższego linka skutkować powinno wyświetleniem w oknie przeglądarki obrazkowego kodu (qrcode), który powinniśmy zeskanować przy pomocy naszego telefonu komórkowego i aplikacji „Google Authenticator”. Następnie przystępujemy do konfiguracji serwera. W pierwszej kolejności edytujemy plik „/etc/ssh/sshd_config”. Ustawiamy opcję „ChallengeResponseAuthentication” na „yes”:
    ChallengeResponseAuthentication yes
    Teraz czas na konfigurację PAM-a. Edytujemy plik „/etc/pam.d/sshd”. Dodajemy na samej górze wspomnianego pliku linie „auth required pam_google_authenticator.so”. Przykładowa zawartość pliku:
    auth required pam_google_authenticator.so
    auth required pam_sepermit.so
    auth include password-auth
    account required pam_nologin.so
    account include password-auth
    password include password-auth
    session required pam_selinux.so close
    session required pam_loginuid.so
    session required pam_selinux.so open env_params
    session optional pam_keyinit.so force revoke
    session include password-auth

    Restartujemy daemona ssh:

    service sshd restart

    Próbujemy się zalogować.

    ssh root@ip_naszego_serwera

    przemek@xeno ~ $ ssh root@adres_ip
    Verification code: <- podajemy kod z aplikacji generującej tokeny
    Password: <- a tu nasze hasło użytkownika
    Last login: Sat Nov 8 20:06:12 2014 from
    [root@ssh ~]#

    I to tyle 🙂 Opisanego narzędzia można również np. do dodatkowego zabezpieczenia logowania przez powłokę graficzną. Powodzenia

4 komentarze do “Dwustopniona autentykacja przy logowaniu po ssh”

  1. Fotograf pisze:

    Jak zawsze na temat. Świetnie piszesz.

  2. Adrian pisze:

    Nie ma słowa „autentykacja” 🙂 Jest słowo „uwierzytelnianie”

  3. Maciej pisze:

    Autentykacja (ang. authentication) jest to weryfikacja czy user jest tym za którego się podaje. Czyli „Kim jesteś?” i „Jak sprawdzić, że jesteś tą osobą, za którą się podajesz?

    Autoryzacja (ang. authorisation) jest to weryfikacja czy user ma prawo dostępu do konkretnych usług / zasobów. Pytania to „Czy user X może przeczytać Y?”, „Czy user X może zmienić Z?”.

  4. czytelnik pisze:

    Też uważam, że słowo autentykacja to wydumana nowomowa/bełkot techniczny nie mające z językiem polskim nic wspólnego.
    Prawidłowe określenie zarówno od strony logicznej jak i mowy/pisowni to uwierzytelnianie.

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony