Š. "NOCTURNO" B.

YubiKey 5 NFC na Linuxu

YubiKeys jsou šikovní pomocníci, ať už pro passwordless sudo, SSH, přihlášení skrz PIV atd. Již několikrát jsem přeinstalovával počítač(e) a už mě nebaví googlit/používat AI, jak co zprovoznit, proto jsem si sepsal, co a jak dělat. Tak třeba to pomůže i někomu jinému. :-)

Sudo bez hesla

Fyzický bezpečnostní klíč YubiKey 5 NFC lze využít nejen pro dvoufaktorové ověřování, ale i pro sudo v Linuxu. V tomto návodu popisuji, jak nakonfigurovat přihlašování pomocí modulu PAM U2F pro sudo. Lze tak povolit buď sudo pouze pomocí YubiKey, nebo kombinované 2FA (heslo + klíč). Návod slouží primárně pro Arch, ale lze v pohodě použít i na jiných distribucích.


Předpoklady

Než začnete, ujistěte se, že máte:

sudo pacman -S pam-u2f

Základní nastavení

  1. Připojte svůj YubiKey do USB portu.
  2. Vytvořte adresář pro konfiguraci (pokud ještě neexistuje):
mkdir ~/.config/Yubico
  1. Zaregistrujte svůj klíč:
pamu2fcfg > ~/.config/Yubico/u2f_keys

Pokud je pro klíč nastaven PIN, zadejte jej. Jakmile kontrolka YubiKey bliká, dotkněte se klíče pro potvrzení. 4. (Volitelné) Přidejte další klíče, pokud jich chcete používat víc:

pamu2fcfg -n >> ~/.config/Yubico/u2f_keys

Konfigurace PAM (Pluggable Authentication Module)

Otevřete soubor pro konfiguraci přihlášení přes sudo:

sudo nano /etc/pam.d/sudo

(Nebo použijte svůj oblíbený editor, např. sudo nvim /etc/pam.d/sudo.)

Pro přihlášení bez hesla (passwordless login) přidejte tento řádek před sekci:

@include common-auth

Vložte:

auth sufficient pam_u2f.so

Výsledná sekce pak bude vypadat přibližně takto:

auth sufficient pam_u2f.so
@include common-auth

Alternativa: Dvoufaktorové ověřování (2FA)

Pokud nechcete zcela odstranit klasické přihlášení heslem, ale pouze přidat YubiKey jako druhý faktor, upravte soubor /etc/pam.d/sudo takto:

@include common-auth
auth required pam_u2f.so

Tím zůstane zachováno ověření heslem a následně bude požadováno dotknutí se YubiKey.


Test funkčnosti

Než soubor uložíte a opustíte terminál, ověřte správnost konfigurace. V novém okně nebo záložce terminálu spusťte:

sudo echo test

Jestliže příkaz printne test, můžete konfiguraci uložit a terminál zavřít.

SSH pomocí YubiKey

Když si jednou vygenerujete SSH klíče, tak se uloží na YubiKey a můžete si je přenášet skrz počítače, což může být dost praktické. Níže jsem sepsal kraťoučký návod jak na to.


Předpoklady

Než začnete, ujistěte se, že máte:

sudo pacman -S yubikey-manager pcsc-tools libfido2

Pak můžeme vygenerovat klíče pomocí tohoto příkazu:

ssh-keygen -t ed25519-sk -O resident -O verify-required -C "xxx"

Vysvětlení jednotlivých částí:

Následně:

#it #security