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"Примечание
Резидентные ключи могут быть позже перечислены и импортированы в другую систему с помощью:
ssh-keygen -KВо время генерации ключа вам также может быть предложено задать парольную фразу **** . Эта фраза шифрует локальный ключ-ручку, хранящийся в
~/.ssh/(не закрытый ключ Nitrokey, который всегда остается в устройстве). Парольная фраза отличается от PIN-кода устройства FIDO2. PIN-код защищает сам физический ключ, а кодовая фраза - ваш локальный файл открытого ключа 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-сервере.