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

Az SSH (Secure Shell) egy hálózati protokoll, amelyet távoli rendszerek, például szerverek vagy kódtárak (pl. GitLab, GitHub) biztonságos elérésére és kezelésére használnak. A hitelesítéshez kriptográfiai kulcspárokat használ, lehetővé téve a jelszó nélküli bejelentkezést erős biztonsággal. A Nitrokey segítségével a privát SSH-kulcsot közvetlenül az eszközön generálják és tárolják, így az soha nem hagyja el a hardvert. Minden bejelentkezéshez meg kell érintenie a Nitrokey-t, ami egy egyszerű fizikai megerősítést ad, amely védelmet nyújt az illetéktelen hozzáférés ellen.

Generating SSH Key

  1. Insert the Nitrokey into your computer.

  2. Nyisson egy terminált, és hozza létre az SSH-kulcsot. A "your_comment" helyett írjon be egy azonosító címkét (pl. „Nitrokey GitLab”). Alapértelmezés szerint a kulcs nem rezidens kulcs, ami azt jelenti, hogy a helyi kulcskezelőt a ~/.ssh/ tárolja, míg a privát kulcs biztonságosan a Nitrokey-n marad. Használja a -O resident opciót, ha azt szeretné, hogy a kulcs hordozható legyen a különböző rendszerek között.

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

    vagy rezidens kulcs létrehozásához

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

    Megjegyzés

    A rezidens kulcsok később listázhatók és importálhatók egy másik rendszerbe:

    ssh-keygen -K
    
  3. A kulcsgenerálás során megkérhetjük, hogy állítson be egy jelszót. Ez a jelszótag titkosítja a ~/.ssh/ tárolt helyi kulcskezelőt (nem a Nitrokey magánkulcsát, amely mindig biztonságosan az eszközben marad). A jelszó különbözik a FIDO2 eszköz PIN-kódjától. A PIN magát a fizikai kulcsot védi, míg a jelszó a helyi SSH nyilvános kulcsfájlt védi. Javasoljuk, hogy a jelszótagot csak a nem rezidens kulcsok védelmére használja.

  4. Amikor a fájl elérési útvonalát kéri, fogadja el az alapértelmezett opciót (~/.ssh/id_ed25519_sk), vagy válasszon egy egyéni nevet, például id_ed25519_sk_gitlab.

  5. Ha a Nitrokey villog, erősítse meg a műveletet a gomb megérintésével.

Végül a következő fájlok jönnek létre. A fájlnevek eltérhetnek, ha a kulcs generálásakor egyéni nevet adott meg.

~/.ssh/id_ed25519_sk → a titkos kulcs fogantyúja (a Nitrokey-n biztonságosan tárolva)

~/.ssh/id_ed25519_sk.pub → nyilvános kulcsfájl

img0

Adding Your Public Key

Miután az SSH-kulcspár elkészült, a nyilvános kulcsot hozzá kell adni a hozzáférni kívánt szolgáltatáshoz vagy kiszolgálóhoz.

  1. Display your public key:

    cat ~/.ssh/id_ed25519_sk.pub
    

    Kimeneti példa (ne használja ezt a billentyűt):

    sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
    
  2. Másolja ki a kimenetet, és adja hozzá a fiókja SSH-kulcsának beállításaihoz. A részletes lépéseket lásd a GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> vagy a GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account> oldalon. Az SSH távoli szerver elérésének engedélyezéséhez adja hozzá a nyilvános kulcsát az SSH-kiszolgálón lévő felhasználói fiókjának ~/.ssh/authorized_keys fájljához.