SSH-аутентификация с ключом безопасности Fido2 / Yubico

Мне было интересно, возможно ли использовать FIDO2 для аутентификации на ssh-сервере. Есть много учебных пособий, объясняющих, как использовать GPG и более новые Yubikeys для аутентификации ssh, но я не нахожу никакой информации о том, возможно ли это или как можно использовать FIDO2 или U2F (особенно ключ безопасности Yubico NFC) для аутентификации по SSH сервер.

2 ответа

Хорошие новости! В OpenSSH 8.2 добавлена ​​поддержка FIDO/U2F. Патч больше не нужен.

Поддержка FIDO / U2F

В этом выпуске в OpenSSH добавлена ​​поддержка аппаратных аутентификаторов FIDO/U2F. U2F/FIDO - это открытые стандарты недорогого оборудования для двухфакторной аутентификации, которые широко используются для аутентификации веб-сайтов. В OpenSSH FIDO устройства поддерживаются новыми типами открытых ключей ecdsa-sk и ed25519-skвместе с соответствующими типами сертификатов.

ssh-keygen(1) могут использоваться для генерации ключа с поддержкой токена FIDO, после чего их можно использовать так же, как и любой другой тип ключа, поддерживаемый OpenSSH, при условии, что аппаратный токен прикреплен при использовании ключей. Токены FIDO также обычно требуют, чтобы пользователь явно разрешал операции, касаясь их или касаясь их.

Для генерации ключа FIDO необходимо, чтобы токен был прикреплен, и, как правило, пользователю необходимо коснуться токена для подтверждения операции:

  $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk
  Generating public/private ecdsa-sk key pair.
  You may need to touch your security key to authorize key generation.
  Enter file in which to save the key (/home/djm/.ssh/id_ecdsa_sk): 
  Enter passphrase (empty for no passphrase): 
  Enter same passphrase again: 
  Your identification has been saved in /home/djm/.ssh/id_ecdsa_sk
  Your public key has been saved in /home/djm/.ssh/id_ecdsa_sk.pub

Вы можете использовать pams, предоставленные yubico.

libpam-yubico для аутентификации otp можно использовать. ссылка

libpam-u2f для u2f (нельзя использовать с ssh, так как он использует libusb, который читает только локальные порты.)

Кстати: вам не нужен PPA, он уже находится в репо (по крайней мере, в Debian).

Это возможно путем исправления сервера и клиента OpenSSH.

Поскольку этот патч не интегрирован в официальный код OpenSSH и выглядит довольно странно, он может содержать ошибки и уязвимости.

Другие вопросы по тегам