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 síťový protokol používaný k bezpečnému přístupu a správě vzdálených systémů, jako jsou servery nebo úložiště kódu (např. GitLab, GitHub). K ověřování používá páry kryptografických klíčů, což umožňuje přihlašování bez hesla se silným zabezpečením. S klíčem Nitrokey je soukromý klíč SSH generován a uložen přímo v zařízení, takže nikdy neopustí hardware. Každé přihlášení vyžaduje dotyk Nitrokey, což přidává jednoduché fyzické potvrzení, které chrání před neoprávněným přístupem.

Generating SSH Key

  1. Insert the Nitrokey into your computer.

  2. Otevřete terminál a vytvořte klíč SSH. Nahraďte "your_comment" štítkem, který ho identifikuje (např. „Nitrokey GitLab“). Ve výchozím nastavení je klíč nerezidentní, což znamená, že místní klíčový handle je uložen v ~/.ssh/, zatímco soukromý klíč zůstává bezpečně na Nitrokey. Pokud chcete, aby byl klíč přenosný mezi systémy, použijte volbu -O resident.

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

    nebo vytvořit rezidentní klíč

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

    Poznámka

    Rezidentní klíče lze později vypsat a importovat do jiného systému pomocí:

    ssh-keygen -K
    
  3. Během generování klíče můžete být také vyzváni k nastavení přístupové fráze **** . Tato heslová fráze zašifruje lokální klíčový handle uložený v ~/.ssh/ (nikoli soukromý klíč na Nitrokey, který vždy zůstává bezpečně uvnitř zařízení). Tato přístupová fráze se liší od kódu PIN zařízení FIDO2. Kód PIN chrání samotný fyzický klíč, zatímco heslová fráze chrání místní soubor s veřejným klíčem SSH. Passphrase doporučujeme používat pouze k ochraně nerezidentních klíčů.

  4. Při dotazu na cestu k souboru můžete přijmout výchozí možnost (~/.ssh/id_ed25519_sk) nebo zvolit vlastní název, například id_ed25519_sk_gitlab.

  5. Pokud tlačítko Nitrokey bliká, potvrďte operaci dotykem.

Nakonec se vytvoří následující soubory. Pokud jste při generování klíče zadali vlastní název, mohou se názvy souborů lišit.

~/.ssh/id_ed25519_sk → přístup k soukromému klíči (bezpečně uložený na Nitrokey)

~/.ssh/id_ed25519_sk.pub → soubor s veřejným klíčem

img0

Adding Your Public Key

Po vygenerování páru klíčů SSH je třeba přidat veřejný klíč ke službě nebo serveru, ke kterému chcete přistupovat.

  1. Display your public key:

    cat ~/.ssh/id_ed25519_sk.pub
    

    Příklad výstupu (tento klíč nepoužívejte):

    sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
    
  2. Zkopírujte výstup a přidejte jej do nastavení klíče SSH svého účtu. Podrobný postup naleznete v části GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> nebo GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account>. Chcete-li povolit vzdálený přístup k serveru SSH, přidejte svůj veřejný klíč do souboru ~/.ssh/authorized_keys svého uživatelského účtu na serveru SSH.