Me preguntaba si es posible utilizar FIDO2 para autenticarse en un servidor ssh. Hay muchos tutoriales que explican cómo usar GPG y los Yubikeys más nuevos para la autenticación ssh, pero no encuentro ninguna información sobre si es posible o cómo es posible usar FIDO2 o U2F (especialmente Yubico Security Key NFC) para autenticarse contra un servidor ssh.
Respuesta1
¡Buenas noticias! OpenSSH 8.2ha añadido soporte para FIDO/U2F. Ya no es necesario un parche.
Soporte FIDO/U2F
Esta versión agrega soporte para autenticadores de hardware FIDO/U2F a OpenSSH. U2F/FIDO son estándares abiertos para hardware de autenticación de dos factores económico que se utilizan ampliamente para la autenticación de sitios web. En OpenSSH, los dispositivos FIDO son compatibles con nuevos tipos de claves públicas
ecdsa-sk
yed25519-sk
, junto con los tipos de certificados correspondientes.
ssh-keygen
(1) se pueden usar para generar una clave respaldada por token FIDO, después de lo cual se pueden usar de manera muy similar a cualquier otro tipo de clave admitido por OpenSSH, siempre que el token de hardware esté adjunto cuando se usan las claves. Los tokens FIDO generalmente también requieren que el usuario autorice explícitamente las operaciones tocándolos o tocándolos.Generar una clave FIDO requiere que se adjunte el token y, por lo general, requerirá que el usuario toque el token para confirmar la operación:
$ 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
Respuesta2
Puede utilizar pams proporcionados por yubico.
libpam-yubico
para la autenticación otp se puede utilizar.árbitro
libpam-u2f
para u2f (no se puede usar con ssh ya que usa libusb que solo lee puertos locales).
Por cierto: no necesita PPA, ya está en el repositorio (al menos Debian).
Respuesta3
Esto es posible porparchear el servidor y el cliente OpenSSH.
Dado que este parche no está integrado en el código oficial de OpenSSH y parece bastante complicado, podría contener errores y vulnerabilidades.