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) är ett nätverksprotokoll som används för säker åtkomst till och hantering av fjärrsystem, t.ex. servrar eller kodarkiv (t.ex. GitLab, GitHub). Det använder kryptografiska nyckelpar för autentisering, vilket möjliggör lösenordslösa inloggningar med stark säkerhet. Med en Nitrokey genereras och lagras den privata SSH-nyckeln direkt på enheten, så den lämnar aldrig hårdvaran. Varje inloggning kräver att du rör vid Nitrokey, vilket ger en enkel fysisk bekräftelse som skyddar mot obehörig åtkomst.

Generating SSH Key

  1. Insert the Nitrokey into your computer.

  2. Öppna en terminal och skapa din SSH-nyckel. Ersätt "your_comment" med en etikett för att identifiera den (t.ex. ”Nitrokey GitLab”). Som standard är nyckeln en icke-bosatt nyckel, vilket innebär att ett lokalt nyckelhandtag lagras i ~/.ssh/ medan den privata nyckeln förblir säkert på Nitrokey. Använd alternativet -O resident om du vill att nyckeln ska vara portabel mellan olika system.

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

    eller för att skapa en resident nyckel

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

    Observera

    Resident keys kan senare listas och importeras till ett annat system med:

    ssh-keygen -K
    
  3. Under nyckelgenereringen kan du också bli ombedd att ange en lösenfras. Denna lösenfras krypterar det lokala nyckelhandtaget som lagras i ~/.ssh/ (inte den privata nyckeln på Nitrokey, som alltid ligger säkert i enheten). Lösenfrasen skiljer sig från FIDO2-enhetens PIN-kod. PIN-koden skyddar själva den fysiska nyckeln, medan lösenfrasen skyddar din lokala offentliga SSH-nyckelfil. Vi rekommenderar att du endast använder en lösenfras för att skydda nycklar som inte är bosatta.

  4. När du ombeds ange en filsökväg kan du acceptera standardalternativet (~/.ssh/id_ed25519_sk) eller välja ett eget namn, t.ex. id_ed25519_sk_gitlab.

  5. Om Nitrokey blinkar ska du bekräfta åtgärden genom att röra vid den.

Så småningom kommer följande filer att skapas. Filnamnen kan skilja sig åt om du angav ett anpassat namn när du genererade nyckeln.

~/.ssh/id_ed25519_sk → handtag till den privata nyckeln (lagras säkert på Nitrokey)

~/.ssh/id_ed25519_sk.pub → fil med offentlig nyckel

img0

Adding Your Public Key

När SSH-nyckelparet har skapats måste den publika nyckeln läggas till i den tjänst eller server som du vill komma åt.

  1. Display your public key:

    cat ~/.ssh/id_ed25519_sk.pub
    

    Exempel på utdata (använd inte den här tangenten):

    sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
    
  2. Kopiera utdata och lägg till den i ditt kontos SSH-nyckelinställningar. Se GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> eller GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account> för detaljerade steg. För att aktivera SSH-fjärråtkomst till server lägger du till din offentliga nyckel i filen ~/.ssh/authorized_keys för ditt användarkonto på SSH-servern.