SSH Authentication with FIDO2

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

active

inactive

inactive

active

inactive

inactive

inactive

SSH (Secure Shell) je sieťový protokol používaný na bezpečný prístup a správu vzdialených systémov, ako sú servery alebo úložiská kódu (napr. GitLab, GitHub). Na overovanie používa kryptografické páry kľúčov, čo umožňuje prihlasovanie bez hesla so silným zabezpečením. Pomocou kľúča Nitrokey sa súkromný kľúč SSH generuje a ukladá priamo v zariadení, takže nikdy neopustí hardvér. Každé prihlásenie si vyžaduje dotyk Nitrokey, čím sa pridáva jednoduché fyzické potvrdenie, ktoré chráni pred neoprávneným prístupom.

Generating SSH Key

  1. Insert the Nitrokey into your computer.

  2. Otvorte terminál a vytvorte kľúč SSH. Nahraďte "your_comment" štítkom na jeho identifikáciu (napr. „Nitrokey GitLab“). V predvolenom nastavení je kľúč nerezidentný, čo znamená, že lokálny handle kľúča je uložený v ~/.ssh/, zatiaľ čo súkromný kľúč zostáva bezpečne na Nitrokey. Ak chcete, aby bol kľúč prenosný medzi systémami, použite možnosť -O resident.

    ssh-keygen -t ed25519-sk -C "your_comment"
    

    alebo vytvoriť rezidentný kľúč

    ssh-keygen -t ed25519-sk -O resident -C "your_comment"
    

    Poznámka

    Rezidentné kľúče možno neskôr zobraziť a importovať do iného systému pomocou:

    ssh-keygen -K
    
  3. Počas generovania kľúča môžete byť požiadaní aj o nastavenie prístupovej frázy **** . Táto prístupová fráza zašifruje lokálnu kľúčovú rukoväť uloženú v ~/.ssh/ (nie súkromný kľúč na Nitrokey, ktorý vždy zostáva bezpečne vnútri zariadenia). Táto prístupová fráza sa líši od kódu PIN zariadenia FIDO2. PIN chráni samotný fyzický kľúč, zatiaľ čo prístupová fráza chráni váš lokálny súbor s verejným kľúčom SSH. Passphrase odporúčame používať len na ochranu nerezidentských kľúčov.

  4. Keď budete požiadaní o cestu k súboru, prijmite predvolenú možnosť (~/.ssh/id_ed25519_sk) alebo vyberte vlastný názov, napríklad id_ed25519_sk_gitlab.

  5. Ak tlačidlo Nitrokey bliká, potvrďte operáciu jeho dotykom.

Nakoniec sa vytvoria tieto súbory. Názvy súborov sa môžu líšiť, ak ste pri generovaní kľúča zadali vlastný názov.

~/.ssh/id_ed25519_sk → prístup k súkromnému kľúču (bezpečne uložený na Nitrokey)

~/.ssh/id_ed25519_sk.pub → súbor s verejným kľúčom

img0

Adding Your Public Key

Po vygenerovaní páru kľúčov SSH je potrebné pridať verejný kľúč k službe alebo serveru, ku ktorému chcete získať prístup.

  1. Display your public key:

    cat ~/.ssh/id_ed25519_sk.pub
    

    Príklad výstupu (nepoužívajte tento kľúč):

    sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
    
  2. Skopírujte výstup a pridajte ho do nastavení kľúča SSH svojho konta. Podrobný postup nájdete v časti GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> alebo GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account>. Ak chcete povoliť vzdialený prístup k serveru SSH, pridajte svoj verejný kľúč do súboru ~/.ssh/authorized_keys svojho používateľského účtu na serveri SSH.