GNU/Linux >> Znalost Linux >  >> Debian

Jak se přihlásit do Linuxu pomocí USB flash disku místo hesla pomocí pam_usb (fork)

pam_usb je modul PAM, který poskytuje hardwarové ověřování pro Linux s běžnými USB flash disky, SD kartami, MMC atd.

To vám umožní přihlásit se bez hesla pouhým připojením USB klíče nebo paměťové karty k počítači. Toto ověřování USB funguje také při provádění příkazů terminálu, které vyžadují superuživatele – například při použití sudo nebudete požádáni o heslo.

pam_usb funguje s jakoukoli aplikací, která podporuje PAM, jako je B. Login manager (GDM, Lightdm atd.) a su / sudo.

Pro ověření používá pam_usb sériové číslo USB flash disku / paměťové karty, model a výrobce a volitelné jednorázové podložky (OTP). Když jsou povoleny One Time Pads (toto je ve výchozím nastavení povoleno, ale můžete to zakázat), soubor veřejných uživatelských pads na USB / paměťové kartě bude ve skryté složce s názvem. uloženo .pamusb zatímco soukromý klíč je uložen ve skryté složce se stejným názvem, která je uložena v domovském adresáři uživatele.

Zdá se, že původní vývojář tohoto nástroje to vzdal, žádné nové commity od dubna 2016 a žádná nová vydání od roku 2011. Od té doby byla v různých repozitářích provedena určitá vylepšení. Pro další vylepšení pam_usb, nástroj rozvětvený, také s ohledem na práci, která byla dříve provedena v jiných úložištích (které zahrnují vylepšení, jako je port UDisk2).

funkce pam_usb:

  • Ověřování bez hesla (paměťová karta / USB). Jednoduše připojte USB klíč / paměťovou kartu, kterou jste nakonfigurovali pomocí pam_usb a přihlaste se
  • Podporuje USB klíče, SD karty, MMC atd.
  • Automatické snímání zařízení. pam_usb nevyžaduje připojení USB flash disku; umí vyhledat zařízení USB a přistupovat k jeho datům přímo pomocí UDiska
  • Není třeba přeformátovat jednotku USB flash
  • Sériové číslo USB, ověření modelu a výrobce
  • Podporuje ověřování One Time Pads (OTP)
  • Lze použít jako dvoufaktorové ověření a k přihlášení do systému Linux vyžaduje USB klíčenku i heslo
  • Stejnou paměťovou kartu / jednotku USB můžete používat na více počítačích

S pam_usb jsou dodávány 3 nástroje:pamusb-agent který lze použít k zahájení akcí, když je zařízení ověřeno nebo odebráno (například můžete použít příkaz k uzamčení obrazovky, když je zařízení odebráno), pamusb-conf což usnadňuje nastavení pam_usb a pamusb-check který se používá k integraci autentizačního jádra pam_usb do skriptů nebo aplikací.

pam_usb aktuálně nepodporuje přidání více než jednoho zařízení na uživatele. Prozatím pamusb-conf nepřidává zařízení pro již nakonfigurované uživatele. Tento problém můžete sledovat zde.

To stojí za zmínku pam_usb se používá pouze k přihlášení a nikoli k odemykání svazku klíčů GNOME nebo dešifrování soukromých složek . Zdá se, že klíčenka GNOME nepodporuje odemykání ničím jiným než pomocí hesla. I když jste automaticky přihlášeni při používání pam_usb a je připojen spárovaný USB flash disk, zobrazí se dialogové okno GNOME Keychain Unlock, které vás vyzve k zadání hesla pro odemknutí. totéž se stane například, pokud používáte ověřování otisků prstů.

Zkoušel jsem to s GDM a LightDM. V obou případech jsem musel kliknout na své uživatelské jméno na přihlašovací obrazovce a stisknout enter, abych se přihlásil, aniž bych musel zadávat heslo k účtu.

[[Edit]]V níže uvedeném komentáři vývojář poznamenal, že se snaží najít pomoc s bezpečnostní kontrolou kódu. Pokud můžete pomoci, kontaktujte je prosím prostřednictvím github.

Související s USB:Vytvořte spouštěcí USB disk jednoduchým zkopírováním ISO na USB flash disk pomocí Ventoy (Linux a Windows)

Nainstalujte a nastavte pam_usb (fork)

tento pam_usb-fork nebyl zabalen do oficiálních repozitářů žádné distribuce Linuxu. Stará verze 0.5.0 (která používá Python2 a Udisks1) je k dispozici pro několik distribucí Linuxu, ale ve většině chybí.

Vývojář pam_usb fork zabalil tuto verzi pam_usb pro aktuální verze Debianu a Ubuntu (stejně jako Linux Mint, Pop! _OS a další distribuce Linuxu založené na Debianu nebo Ubuntu) a můžete si ji stáhnout zde (Odtud potřebujete pouze balíček libpam-usb).

Fork repozitář pam_usb má také k dispozici Arch Linux / Manjaro PKGBUILD .

U ostatních distribucí Linuxu je budete muset sestavit ze zdroje .

Pokud instalujete pam_usb (fork) z balíčku Debian poskytnutého vývojářem, budete během instalace vyzváni k výběru zařízení a uživatele:

Pokud to není váš případ nebo to chcete provést později ručně, můžete pam_usb nastavit takto. Vložte USB flash disk nebo paměťovou kartu a spusťte následující příkaz pro přidání nového zařízení jako metody ověřování:

sudo pamusb-conf --add-device DEVICE_NAME

Kde DEVICE_NAME může být cokoli chcete

Dále musíte přidat svého uživatele do konfigurace pam_usb pomocí:

sudo pamusb-conf --add-user USERNAME

Kde USERNAME je uživatel, pro kterého chcete povolit ověřování založené na USB / paměťové kartě.

Uživatelské jméno a informace o zařízení jsou uloženy v /etc/security/pam_usb.conf Soubor.

Nyní můžete zkontrolovat konfiguraci a zjistit, zda je vše v pořádku, pomocí:

pamusb-check USERNAME

Je důležité si uvědomit, že pokud používáte balíčky DEB poskytnuté vývojářem, nemusíte nic dalšího konfigurovat. Ale pokud jste nainstalovali pam_usb ze zdroje, musíte pam_usb přidat do procesu ověřování systému, jak je vysvětleno zde.

Další možnosti konfigurace pam_usb najdete na jeho konfigurační wiki stránce.

Nakonfigurujte pam_usb tak, aby uzamkl obrazovku, když je vyjmut klíč USB / paměťová karta (a odemkne se po opětovném vložení)

pam_usb může spouštět příkazy pomocí pamusb-agent, když je USB klíč / paměťová karta vložena nebo vyjmuta.

Pam_usb wiki má příklad konfigurace pro uzamčení obrazovky při vyjmutí USB flash disku / paměťové karty a odemknutí při opětovném vložení. Tento příklad již nefunguje v Gnome (ale měl by fungovat v jiných desktopových prostředích tím, že jej nahradí) gnome-screensaver-command s cinnamon-screensaver-command pro Cinnamon desktop, mate-screensaver-command pro plochu MATE atd.). [[Edit]]Můžete nahradit xdg-screensaver (Část xdg-utils Balík; např. xdg-screensaver lock pro uzamčení obrazovky a xdg-screensaver reset odemknout).

Chcete-li, aby pam_usb uzamkl obrazovku, když je vyjmut USB klíč/paměťová karta, a jakmile je zařízení znovu připojeno, odemkne se na distribucích Linuxu se systémem (tuto konfiguraci jsem testoval pouze na Gnome s GDM3, používám následující konfiguraci (/etc/security/pam_usb.conf ):

...................................

<user id="USERNAME">

<device>DEVICE_NAME</device>

<!-- When the user "USERNAME" removes the usb device, lock the screen -->

<agent event="lock">

        <cmd>/usr/local/bin/screensaver-lock</cmd>        

    </agent>

    <!-- Resume operations when the usb device is plugged back and authenticated -->

    <agent event="unlock">     

        <cmd>/usr/local/bin/screensaver-unlock</cmd>       

    </agent>

</user>

...................................

K tomu se používají dva skripty. /usr/local/bin/screensaver-lock se používá k uzamčení obrazovky a /usr/local/bin/screensaver-unlock pro odemknutí obrazovky. Zde je jejich obsah.

/usr/local/bin/screensaver-lock :

#!/bin/sh

SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`

if [ -n $SESSION ]; then

        loginctl lock-session $SESSION

fi

/usr/local/bin/screensaver-unlock :

#!/bin/sh

SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`

if [ -n $SESSION ]; then

        loginctl unlock-session $SESSION

fi

Nahraďte v obou USERNAME s vaším uživatelským jménem.

Mohlo by se vám také líbit:KDE Connect / GSConnect:Jak zamknout / odemknout plochu Linuxu pomocí zařízení Android

výše wiki.ubuntuusers.de


Debian
  1. Jak vytvořit bootovatelný Linux USB pomocí Ubuntu nebo LinuxMint

  2. Jak připojit USB flash disk v Linuxu

  3. Jak vytvořit bootovací Memtest86+ na USB flash disku?

  1. Jak vypálit soubor ISO na USB disk v Linuxu pomocí Etcher

  2. Jak vytvořit zaváděcí USB disk pomocí příkazu dd

  3. Jak spravovat soubory protokolu pomocí Logrotate v Linuxu

  1. Jak vytvořit bootovací USB disk pro Linux

  2. Jak zapisovat soubory protokolu do RAM pomocí Log2ram v Linuxu

  3. Jak připojit USB disk v UNIX nebo Linux