Verificación en dos pasos en Secure Shell con Google Authenticator

Una de las cosas más importante al abrir Secure Shell a internet es la seguridad. Es fácil que se convierta en el objetivo de bots y niñatos, por eso mismo toda medida que se tome para protejerlo es poco.

Además de limitar el rango de IP, los usuarios o el puerto de conexión existe la posibilidad de usar la validación en dos pasos para conectarse a Secure Shell.

Google ofrece un software llamado Google Authenticator que permite configurar la validación en dos pasos para diferente servicios. Es totalmente independiente, no comparte ninguna información con Google y el usuario tiene control absoluto sobre él.

Puede instalarse a partir de código o con:

~$ sudo apt-get install install libpam-google-authenticator

Una vez instalado el módulo PAM hay que configurarlo para que funcione con Secure Shell.

El primer paso es crear una clave de verificación para el usuario. Iniciada sesión con el usuario, se crea con el comando google-authenticator.

Google Authenticator pregunta al usuario una serie de parametros de seguridad, como el tiempo de validez de las claves, el número de intentos…

Google Authetificator dispone de aplicaciones para Android e iOS. En la aplicación puede introducirse la clave secreta o capturar el código QR. Además Google authenticator facilita unos códigos de emergencia por si perdemos el el generador de códigos o la clave secreta.

Activar Google Authenticator

Para activar el módulo PAM para que se requiera el código de verificación al iniciar sesión en Secure Shell hay que añadir la siguiente línea en /etc/pam.d/sshd:

auth required pam_google_authenticator.so

A continuación hay que activarlo en la configuración de Secure Shell. Para ello hay que cambiar la opción ChallengeResponseAuthentication de no a yes.

Reiniciamos Secure Shell con:

sudo service ssh restart

Y la próxima vez que se conecte el usuario , tras introducir la contraseña, se solicitará el código de verificación.