Cómo añadir a nuestro servidor SSH un segundo factor de autenticación con Google Authenticator

En esta entrada veremos como añadir a nuestro servidor SSH un segundo factor de autenticación con Google Authenticator, de tal manera que cada vez que accedamos al servidor se nos solicite adicionalmente un código distinto que podremos obtener mediante la aplicación correspondiente de nuestro teléfono.

Google Authenticator está disponible para smartphones y cómo módulo PAM en Linux y es una implementación open source de TOTP (time-based one-time password) que utiliza un sencillo algoritmo que sólo requiere un reloj preciso y una contraseña compartida para generar un código válido sólo durante un pequeño espacio de tiempo.

A continuación veremos lo sencillo que resulta implementar este sistema en una distribución Linux, en nuestro caso BT5r3:

1. Instala libpam-google-authenticator:
add-apt-repository ppa:failshell/stable
apt-get update
apt-get install libpam-google-authenticator


2. Crea una nueva clave:
google-authenticator 


 
¡Apunta las claves!. Cada código de emergencia sólo podrá usarse una única vez en caso de perder el teléfono. Éstas serán también almacenadas en .google_authenticator.

3. Instala la aplicación y configura el teléfono:
Instala Google Authenticator en tu terminal con Android, Blackberry o iOS.
Lee el código QR generado anteriormente o añade manualmente la clave secreta:


Comprueba que el código de verificación está constantemente cambiando:


4. Añade el módulo PAM:
Añade esta línea al principio del fichero /etc/pam.d/sshd : 

auth required pam_google_authenticator.so

5. Configura SSH:
Modifica esta línea en el fichero /etc/ssh/sshd_config : ChallengeResponseAuthentication yes
Reinicia SSH:

service SSH restart

6. Comprueba el acceso remoto al servidor:
login as: root
Using keyboard-interactive authentication.
Verification code:
Using keyboard-interactive authentication.
Password:
Linux bt 3.2.6 #1 SMP Fri Feb 17 01:40:05 EST 2012 i686 GNU/Linux

root@bt:~#


Fuente: How to Secure SSH with Google Authenticator’s Two-Factor Authentication

Comentarios