Así que tengo este pequeño y elegante truco y quiero agregar una capa adicional de seguridad al autenticar sesiones ssh. En el lado del servidor, ya he deshabilitado la autenticación de contraseña y solo permito el uso de claves ssh al iniciar sesión.
El problema es que, después de configurar sshd y PAM para yubikey auth, sshd solo requiere una clave ssh, nunca se me pide que responda desde yubikey.
¿Cómo necesito tanto la clave ssh como la yubikey?
(ubuntu 14.04 - trusty)
/etc/pam.d/common-auth
:
auth required pam_yubico.so mode=client try_first_pass id=<id> key=<secret>
auth [success=1 default=ignore] pam_unix.so nullok_secure try_first_pass
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth optional pam_cap.so
# end of pam-auth-update config
/etc/ssh/sshd_config
:
...
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
ssh
two-factor
ben lemasurier
fuente
fuente
Respuestas:
Ok, seguí y creo que he encontrado una solución razonable. Lo principal que me faltaba anteriormente era sshd's
AuthenticationMethods publickey,password
. Esto exige el requisito tanto de una clave pública como de una contraseña: las "contraseñas" ahora están siendo manejadas porPAM->auth-yubi
. También se necesitaban cambios adicionales, ver a continuación:(ubuntu 14.04 - confiable):
/etc/pam.d/yubi-auth
Nota: puede obtener su ID de acceso y clave secreta aquí
/etc/pam.d/sshd
/ etc / ssh / sshd_config
service ssh restart
Verificación
SSH desde un host remoto sin una clave pública
SSH desde un host remoto con una clave pública
Mejora
Sería bueno ver "Yubikey Auth:" en lugar de "contraseña:" desde el servidor ssh remoto al autenticar.
¿Qué sucede cuando el servidor ssh no puede contactar con el sistema de verificación de autenticación de yubico? Una solución ideal sería totalmente autónoma.
Comentarios y sugerencias apreciados.
fuente
Configurar 2FA con Yubikey puede ser complicado (aunque hay un parche openssh para U2F ), pero la forma más fácil es probablemente la que se describe en el sitio web oficial de Yubico .
Básicamente es la forma de almacenar su clave privada en el Yubikey y protegerla con un PIN. No se describe exactamente el 2FA (pero es algo que tiene y lo que sabe ), pero aumenta aún más la seguridad (Yubikey se bloquea después de algunos intentos fallidos).
TL: DR;
fuente