SSH Authentication with FIDO2¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
SSH (Secure Shell) to protokół sieciowy używany do bezpiecznego dostępu i zarządzania zdalnymi systemami, takimi jak serwery lub repozytoria kodu (np. GitLab, GitHub). Wykorzystuje on pary kluczy kryptograficznych do uwierzytelniania, umożliwiając logowanie bez hasła z silnym zabezpieczeniem. Dzięki Nitrokey, prywatny klucz SSH jest generowany i przechowywany bezpośrednio na urządzeniu, więc nigdy nie opuszcza sprzętu. Każde logowanie wymaga dotknięcia klucza Nitrokey, dodając proste fizyczne potwierdzenie, które chroni przed nieautoryzowanym dostępem.
Generating SSH Key¶
Insert the Nitrokey into your computer.
Otwórz terminal i utwórz klucz SSH. Zastąp
"your_comment"etykietą, aby go zidentyfikować (np. „Nitrokey GitLab”). Domyślnie klucz jest kluczem nierezydentnym, co oznacza, że lokalny uchwyt klucza jest przechowywany w~/.ssh/, podczas gdy klucz prywatny pozostaje bezpiecznie na Nitrokey. Użyj opcji-O resident, jeśli chcesz, aby klucz był przenośny między systemami.ssh-keygen -t ed25519-sk -C "your_comment"lub utworzyć klucz rezydentny
ssh-keygen -t ed25519-sk -O resident -C "your_comment"Informacja
Klucze rezydentne mogą być później wymienione i zaimportowane do innego systemu:
ssh-keygen -KPodczas generowania klucza możesz również zostać poproszony o ustawienie hasła **** . To hasło szyfruje lokalny uchwyt klucza przechowywany w
~/.ssh/(nie klucz prywatny na Nitrokey, który zawsze pozostaje bezpiecznie wewnątrz urządzenia). Hasło różni się od kodu PIN urządzenia FIDO2. PIN chroni sam klucz fizyczny, podczas gdy hasło chroni lokalny plik klucza publicznego SSH. Zalecamy używanie hasła tylko do ochrony kluczy nierezydentnych.Gdy pojawi się pytanie o ścieżkę do pliku, zaakceptuj domyślną opcję (
~/.ssh/id_ed25519_sk) lub wybierz niestandardową nazwę, taką jakid_ed25519_sk_gitlab.Jeśli Nitrokey miga, potwierdź operację dotykając go.
Ostatecznie zostaną utworzone następujące pliki. Nazwy plików mogą się różnić, jeśli określono niestandardową nazwę podczas generowania klucza.
~/.ssh/id_ed25519_sk→ uchwyt do klucza prywatnego (przechowywanego bezpiecznie na Nitrokey)
~/.ssh/id_ed25519_sk.pub→ plik klucza publicznego
Adding Your Public Key¶
Po wygenerowaniu pary kluczy SSH, klucz publiczny musi zostać dodany do usługi lub serwera, do którego chcesz uzyskać dostęp.
Display your public key:
cat ~/.ssh/id_ed25519_sk.pubPrzykładowe wyjście (nie używaj tego klawisza):
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
Skopiuj dane wyjściowe i dodaj je do ustawień klucza SSH swojego konta. Zobacz GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> lub GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account> dla szczegółowych kroków. Aby włączyć zdalny dostęp do serwera SSH, dodaj swój klucz publiczny do pliku
~/.ssh/authorized_keysswojego konta użytkownika na serwerze SSH.