Logowanie do systemu przy pomocy pendrive’a

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

W tym poradniku przedstawię rozwiązanie, które pozwoli na logowanie do systemu przy pomocy urządzenia przenośnego jakim może być np. pendrive, karta pamięci czy nawet telefon. Aby osiągnąć zamierzony efekt, potrzebne będzie narzędzie PAMUSB (Pluggable Authentication Modules USB) oraz pamięć USB – w moim przypadku zwykły pendrive. Rozwiązanie jest kompatybilne z wieloma menedżerami logowania (LightDM, GDM, MDM i innymi).

Po przygotowaniu urządzenia, otrzymamy również możliwość uwierzytelnienia użytkownika, gdy przyjdzie konieczność skorzystania z praw roota.

Rozwiązanie testowane na Ubuntu 12.10 Quantal Quetzal.
  1. Otwórz terminal i zainstaluj niezbędne pakiety:
    sudo apt-get install pamusb-tools libpam-usb
  2. Podłącz pendrive i skonfiguruj go poleceniem:
    sudo pamusb-conf --add-device nazwa_urządzenia

    Gdzie nazwa_urządzenia, to dowolna nazwa np. ubuntustick. Po wykonaniu polecenia w pliku konfiguracyjnym /etc/pamusb.conf zostanie zdefiniowane nowe urządzenie.

  3. Dodaj swojego użytkownika do pliku konfiguracyjnego PAM poleceniem:
    sudo pamusb-conf --add-user nazwa_użytkownika
  4. Otwórz plik /etc/pam.d/common-auth:
    sudo gedit /etc/pam.d/common-auth

    Zastąp taki sam lub podobny wpis :

    auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass

    na:

    auth sufficient pam_usb.so
    auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass

    Zapisz i zamknij plik.

Od tego momentu możesz logować się do systemu oraz uwierzytelniać użytkownika wykorzystując do tego przygotowany nośnik USB. Aby sprawdzić poprawność wykonanych instrukcji, odłącz urządzenie USB, wyloguj się, podepnij urządzenie i sprawdź, czy pole hasła zamieni się na przycisk logowania. Ewentualnie wykonaj (np. w terminalu) operację wymagającą praw roota np.:

sudo apt-get update

Jeśli terminal wyświetli kod:

* pam_usb v0.5.0
* Authentication request for user "szmitas" (su)
* Device "ubuntustick" is connected (good).
* Performing one time pad verification...
* Regenerating new pads...
* Access granted.

Oznacza to, że wszystko zostało wykonane poprawnie.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • Tomek

    Może ktoś napisać czemu ma to służyć? Jakie są tego korzyści? Po co to stosować?

    • Kamil Kamiński

      Chociaż by do ochrony własnych danych na dysku. Nie każdy ma swój prywatny sprzęt, więc rozwiązanie przydatne dla osób które mają wścibskie rodzeństwo,rodziców itp.

      • Tomek

        Dziękuję za odpowiedź, lecz nadal nie rozumiem. Dla ochrony danych mam swój login i hasło. W jaki sposób ten pendrive ma ochronić moje dane?

        • Andrzej

          Jest to kolejna warstwa zabezpieczeń, którą osoba chcąca otrzymać dostęp do twoich danych musi „pokonać”.

          • Kiro

            Źle rozumujesz, to jest alternatywna forma, wciąż możesz logować wykorzystując hasło. Jednak np można ustawić supertrudne którego nie chce Ci sie za każdym razem wpisywać – do tego masz pendrive.

            • Tomek

              Dzięki Kiro. Teraz widzę sens przygotowania i stosowania takiego pendrive.

      • http://www.rapidrage.org/ FihuFil

        Tutaj raczej chodzi o to: mówisz do dziewczyny/innej zaufanej osoby:
        masz pena weź mnie zaloguj ja ide sobie zrobić kanapkę ;)

  • KimDzongUn

    proszę o info czy pendrive jest nadal do używania czy już służy tylko do logowana ?

    • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

      Pendrive nie utracił swoich właściwości :)

  • mr_zola

    a czy po tym zabiegu będę mógł się zalogować bez pendriva, np. za pomocą hasła?

    • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

      Tak.

  • Rafał Woźniak

    na Debian Wheezy też działa. Całkiem fajne i sympatyczne.

  • http://profiles.google.com/laseck.kuba Kuba Laseck

    a co jak sie cos spieprzy? tak jak mi?

    • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

      A coś więcej?

      • http://profiles.google.com/laseck.kuba Kuba Laseck

        przez przypadek sformatowalem tego pendriva z tymi dziwnymi plikami, i mozliwosc wpisywania w terminalu mojego hasla root jest blokowana przez brak pendrive. czy jakos tak

  • Marcin S.

    Ja mam taki problem, że przy podłączonym pendrive, podczas wpisywania hasła, pojawia mi się takie coś:

    * pam_usb v0.5.0
    * Authentication request for user „melon” (sudo)
    * Device „melon” is connected (good).
    * Performing one time pad verification…
    * Probing volume (this could take a while)…
    * Access denied.
    Sorry, try again.

    Natomiast kiedy odłączę pendrive, pojawia mi się taki komunikat:

    * pam_usb v0.5.0
    * Authentication request for user „melon” (sudo)
    * Device „melon” is not connected.
    * Access denied.
    Sorry, try again.

    Obecnie nie mam dostępu do uprawnień roota, z, czy też bez podłączonego pendrive. Nie akceptuje mi mojego hasła, nie licząc może logowania do systemu, oraz wpisania hasła do „Bazy kluczy”, której komunikat zaczął pojawiać się po zabawie z pendrive.
    Jakieś sugestie?

    • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

      Proponuję uruchomić system z LiveCD/LiveUSB i usunąć z pliku sudo gedit /etc/pam.d/common-auth dwie dodane linie.

      • Marcin S.

        Tak też zrobiłem przed chwilą, dodatkowo z pliku /etc/pamusb.conf usunąłem swoje urządzenie. Pytanie tylko, co poszło nie tak?

        • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

          Możliwe, że ręczna edycja pliku /etc/pamusb.conf coś namieszała. Mogłeś sprawdzić czy polecenie dodające urządzenie/użytkownika nie posiada parametru odwrotnego – a pewnie ma. Usuń oba pakiety z parametrem –purge i zainstaluj ponownie.

  • Morfeusz888

    ” sprawdź, czy pole hasła zamieni się na przycisk logowania.”

    Zmieniać się nie zmienia na przycisk logowania, ale nawet jak wpisuje poprawne hasło to mnie nie zaloguje ;)

  • Morfeusz888

    A jeżeli nośnik zostanie uszkodzony to jak się zalogujemy do systemu?

    • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

      Nośnik to alternatywa – zawsze pozostaje tradycyjny sposób.

      • Morfeusz888

        Właśnie u mnie pomimo podania prawidłowego hasła gdy nośnik jest wyjęty to i tak nie loguje mnie do systemu.

        • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

          A gdy jest podpięty?

          • Morfeusz888

            To mnie zaloguje, dlatego narodziło się moje pytanie, co gdy nośnik zostanie uszkodzony.

            • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

              Przed chwilą sam sprawdziłem Twój wariant – w moim przypadku niezależnie od tego czy urządzenie jest podpięte czy też nie, mogę zalogować się do systemu. Z jakiej wersji Ubuntu korzystasz?

              • Morfeusz888

                Ubuntu 12.10 edycja 32-bitowa.

              • Morfeusz888

                Ok, teraz zalogować się mogę, ale jak coś wykonuję jako sudo i poprosi mnie o podanie hasła, to wyrzuca, że jest niepoprawne.

              • http://www.ubuntu-pomoc.org/ Łukasz Schmidtke

                Czyli to samo co u Marcina S. Niestety nie mam pomysłu jak to rozwiązać (poza przywróceniem do stanu początkowego, o czym pisałem wcześniej) – może Marcin coś wymyślił. Gdybym sam był w takiej sytuacji to mógłbym kombinować – (nie)stety u mnie działa poprawnie.

              • Marcin S.

                Ja na razie nie mam czasu się z tym bawić, może za jakiś czas?

  • Hosterek

    U mnie też nie działało. W lightdm nie miało prawa działać, bo pendrive nie był automatycznie montowany, a po zalogowaniu się i użyciu komendy z sudo i tak musiałem podawać hasło (przy czym pendrive musiał być podłączony) i zabrało mi możliwość przelogowania na roota (polecenie su) bo pojawia się ‚brak dostępu’.

    Teraz tak: wywaliłem to z –purge i co prawda już nie chciał ode mnie podłączonego pendrivea przy używaniu sudo, to hasło już nie wchodziło. Usunąłem z mojego home’a katalog .pamusb, ale nic się poprawiło. Jakieś pomysły jak to rozwiązać? Używam ubuntu 12.04.2.

  • Kamigami

    Takie pytanie:
    Czy ten sam dysk usb można stosować do wielu komputerów?
    Nazwijmy to jako klucz uniwersalny do konta administracyjnego.