SSH Authentication with FIDO2¶
Compatible Nitrokeys |
|||||||
|---|---|---|---|---|---|---|---|
✓ active |
✓ active |
⨯ inactive |
⨯ inactive |
✓ active |
⨯ inactive |
⨯ inactive |
⨯ inactive |
SSH (Secure Shell) е мрежов протокол, който се използва за сигурен достъп и управление на отдалечени системи, като например сървъри или хранилища за код (например GitLab, GitHub). Той използва криптографски двойки ключове за удостоверяване, което позволява влизане без парола със силна сигурност. С Nitrokey частният SSH ключ се генерира и съхранява директно на устройството, така че никога не напуска хардуера. Всяко влизане в системата изисква да докоснете Nitrokey, като се добавя просто физическо потвърждение, което предпазва от неоторизиран достъп.
Generating SSH Key¶
Insert the Nitrokey into your computer.
Отворете терминал и създайте своя SSH ключ. Заменете
"your_comment"с етикет, който да го идентифицира (напр. „Nitrokey GitLab“). По подразбиране ключът е нерезидентен ключ, което означава, че в~/.ssh/се съхранява локална дръжка на ключа, докато частният ключ остава на сигурно място в Nitrokey. Използвайте опцията-O resident, ако искате ключът да бъде преносим в различни системи.ssh-keygen -t ed25519-sk -C "your_comment"или да създадете ключ на резидент
ssh-keygen -t ed25519-sk -O resident -C "your_comment"Note
Резидентните ключове могат по-късно да бъдат изброени и импортирани в друга система с:
ssh-keygen -KПо време на генерирането на ключове може да бъдете помолени да зададете парола **** . Тази парола криптира локалния ключ, съхраняван в
~/.ssh/(а не частния ключ на Nitrokey, който винаги остава на сигурно място в устройството). Фразата е различна от ПИН кода на устройството по FIDO2. ПИН кодът защитава самия физически ключ, докато паролата защитава вашия локален SSH файл с публичен ключ. Препоръчваме да използвате парола само за защита на нерезидентни ключове.Когато бъдете попитани за пътя до файла, приемете опцията по подразбиране (
~/.ssh/id_ed25519_sk) или изберете потребителско име, напримерid_ed25519_sk_gitlab.Ако клавишът Nitrokey мига, потвърдете операцията, като го докоснете.
В крайна сметка ще бъдат създадени следните файлове. Имената на файловете може да се различават, ако сте посочили потребителско име при генерирането на ключа.
~/.ssh/id_ed25519_sk→ дръжка на частния ключ (съхранява се на сигурно място в Nitrokey)
~/.ssh/id_ed25519_sk.pub→ файл с публичен ключ
Adding Your Public Key¶
След като двойката SSH ключове е генерирана, публичният ключ трябва да бъде добавен към услугата или сървъра, до който искате да получите достъп.
Display your public key:
cat ~/.ssh/id_ed25519_sk.pubПримерен изход (не използвайте този ключ):
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG7wZW4zc2guY29tAAAAILeZl6r07HV4i1rK07OfLqD3J4IzX2q0lB6Ok0pdxoG5AAAABHNzaDo= your_comment
Копирайте резултата и го добавете към настройките на SSH ключа на вашия акаунт. За подробни стъпки вижте GitLab <https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account> или GitHub <https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account>. За да разрешите отдалечен достъп до SSH сървъра, добавете публичния си ключ към файла
~/.ssh/authorized_keysна потребителския си акаунт в SSH сървъра.