Saltar al contenido principal

Servidor dedicado: Autenticación SSH de dos factores

Esta guía fue creada con los siguientes productos:

(Los detalles pueden variar según los productos de diferentes proveedores, pero los conceptos principales permanecen igual)

Introducción

El servicio de autenticación SSH de dos factores (2FA) de Google, conocido como Google Authenticator SSH, mejora la seguridad del acceso SSH (Secure Shell) añadiendo una segunda capa de autenticación. Aunque SSH ya proporciona un método seguro para establecer una conexión cifrada a un servidor remoto, la integración del 2FA aumenta el nivel de seguridad al requerir que los usuarios ingresen no solo su contraseña, sino también un código de verificación de un solo uso generado por Google Authenticator. En esta guía, exploraremos el proceso de instalación y configuración del servicio Google Authenticator SSH en un servidor Linux.

Instalación

Primero necesitas instalar Google Authenticator en tu VPS Linux. Ejecuta el siguiente comando:

sudo apt install libpam-google-authenticator

Luego se te pedirá que escribas "Y" para instalar el paquete, escríbelo, presiona Enter y ¡Google Authenticator se instalará!

Inicia Google Authenticator escribiendo 'google-authenticator'. Asegúrate de que el tamaño de la ventana sea suficiente para el Código QR, de lo contrario presiona "CTRL+C" y ejecútalo de nuevo.

Ahora se te preguntará si quieres ejecutarlo, escribe "Y" para aceptar. Verás un Código QR. Abre tu app Authenticator en tu smartphone y escanea el Código QR. Para este ejemplo usamos Google Authenticator:

Asegúrate de copiar los códigos de respaldo, cada uno puede usarse una vez en caso de que pierdas tu autenticador.

Ahora la app ya te muestra los códigos que necesitarás para iniciar sesión más tarde. En este caso se ve así:

Se te harán las siguientes preguntas:

  1. ¿Quieres guardar la configuración de Google Authenticator?
  2. ¿Quieres solo un inicio de sesión cada 30 segundos?
  3. ¿Debería aumentarse el tiempo en que un código es válido?
  4. ¿Deberían permitirse solo tres inicios de sesión cada 30 segundos? (Protección contra fuerza bruta)

Por razones de seguridad, recomendamos confirmar todas con Sí.

Configuración

Ahora tenemos que ajustar Google Authenticator para que también se use. Esto requiere dos ajustes.

/etc/ssh/sshd_config

Activa los módulos necesarios en /etc/ssh/sshd_config. Abre el archivo /etc/ssh/sshd_config escribiendo

sudo nano /etc/ssh/sshd_config

Estarás en un editor de texto. Puedes moverte con las flechas, borrar texto libremente y escribir. Para guardar, presiona 'CTRL + X', luego 'Y' y finalmente 'Enter'.

Asegúrate de que las dos líneas 'UsePAM' y 'ChallengeResponseAuthentication' estén configuradas en 'yes'. Así:

Guarda el archivo con 'CTRL + X', luego 'Y' y finalmente 'Enter'. Después reinicia SSH con el siguiente comando:

sudo systemctl restart ssh

/etc/pam.d/sshd

Ahora añadimos Google Authenticator al login en /etc/pam.d/sshd. Abre el archivo /etc/pam.d/sshd escribiendo sudo nano /etc/pam.d/sshd. El último paso es desplazarte hasta el final del archivo y añadir la línea 'auth required pam_google_authenticator.so'.

Guarda el archivo con 'CTRL + X', luego 'Y' y finalmente 'Enter'.

Prueba de acceso

Ahora es momento de iniciar sesión por primera vez con 2FA. Después de seguir los pasos anteriores, solo necesitas reiniciar tu conexión SSH.

Ingresa tu contraseña como siempre. Luego se te pedirá un código, simplemente introduce el código 2FA actual.

¡Y listo, ya estás dentro!

Conclusión

¡Felicidades, has configurado exitosamente 2FA para tu acceso SSH! Si tienes más preguntas o necesitas ayuda, no dudes en contactar a nuestro equipo de soporte, disponible todos los días para asistirte 🙂.