SSH Authentication with FIDO2¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
SSH (Secure Shell) is a network protocol used to securely access and manage remote systems such as servers or code repositories. It uses cryptographic key pairs for authentication, allowing passwordless logins with strong security.
With a Nitrokey, the private SSH key is generated and stored directly on the device, so it never leaves the hardware. Each login requires you to touch the Nitrokey, adding a simple physical confirmation that protects against unauthorized access. For example, when connecting to a server, GitLab, or GitHub.
Non-Discoverable Credentials¶
Neatpažįstamas įgaliojimas - tai numatytasis įgaliojimo tipas, sukurtas, kai naudotojas užregistruoja savo „Nitrokey“ autentifikavimo sistemoje, palaikančioje FIDO2/WebAuthn. Autentifikavimo sistema saugo rakto rankeną, o privatusis raktas saugiai lieka „Nitrokey“ rakte. Ši konfigūracija nenaudoja jokios vietos „Nitrokey“ rakte ir priklauso nuo autentifikavimo sistemos, kuri prisijungimo metu pateikia rakto rankeną. „Nitrokey“ FIDO2 PIN kodas kontroliuoja prieigą prie „Nitrokey“ rakto ir leidžia atlikti visas su privačiais raktais susijusias operacijas.
Discoverable Credentials¶
Atrandamas įgaliojimas saugomas tiesiogiai „Nitrokey“, įskaitant visą įgaliojimo informaciją ir metaduomenis, reikalingus autentifikavimui. Tai leidžia autentifikavimo sistemai automatiškai surasti įgaliojimą nenurodant išorinio rakto rankenos ir leidžia autentifikavimą be vartotojo vardo. Atrandami įgaliojimai yra apsaugoti FIDO2 PIN kodu, kuris suteikia teisę juos naudoti ir užtikrina, kad jais gali naudotis tik įgaliotasis naudotojas. Kiekvienas įgaliojimas paprastai užima kelis šimtus baitų saugios atminties. Bendras įgaliojimų skaičius priklauso nuo „Nitrokey“ modelio ir programinės aparatinės įrangos versijos, paprastai nuo 25 iki 100 įrašų.
Generating SSH Key¶
Insert the Nitrokey into your computer.
Open a terminal and create your SSH key. Replace
"your_comment"with a label to identify it (e.g., „Nitrokey GitLab“). By default, the key is created as a non-discoverable credential. In this case, a local key handle is stored in ~/.ssh/ while the private key remains on the Nitrokey. This means the key is tied to the system where it was generated, since the local key handle file is required for authentication. Use the -O resident option to create a discoverable credential. In this case, the credential is stored on the Nitrokey, making it portable and usable across different systems without copying any local files.Non-discoverable credential:
ssh-keygen -t ed25519-sk -C "your_comment"Discoverable credential:
ssh-keygen -t ed25519-sk -O resident -C "your_comment"Pastaba
Discoverable credentials can later be listed and imported on another system with:
ssh-keygen -KDuring key generation, you may also be asked to set a passphrase. This passphrase encrypts the local key handle stored in
~/.ssh/(not the private key on the Nitrokey, which always stays securely inside the device). The passphrase is different from the FIDO2 device PIN. The PIN protects the physical key itself, while the passphrase protects your local SSH public key file. We recommend to use a passphrase to protect non-discoverable keys only.Kai prašoma nurodyti failo kelią, priimkite numatytąją parinktį (
~/.ssh/id_ed25519_sk) arba pasirinkite pasirinktinį pavadinimą, pavyzdžiui,id_ed25519_sk_gitlab.Jei „Nitrokey“ mygtukas mirksi, patvirtinkite operaciją jį paliesdami.
Galiausiai bus sukurti šie failai. Failų pavadinimai gali skirtis, jei generuodami raktą nurodėte pasirinktinį pavadinimą.
~/.ssh/id_ed25519_sk→ privataus rakto (saugiai saugomo „Nitrokey“) tvarkyklė~/.ssh/id_ed25519_sk.pub→ viešojo rakto failas
Adding Your Public Key¶
Sukūrus SSH raktų porą, viešąjį raktą reikia pridėti prie paslaugos ar serverio, prie kurio norite prisijungti.
Display your public key:
cat ~/.ssh/id_ed25519_sk.pubIšvesties pavyzdys (nenaudokite šio klavišo):
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
Nukopijuokite išvestį ir pridėkite ją prie savo paskyros SSH rakto nustatymų.
See GitLab or GitHub for detailed steps.
Norėdami įjungti SSH nuotolinę prieigą prie serverio, pridėkite viešąjį raktą prie SSH serverio naudotojo paskyros failo
~/.ssh/authorized_keys.