Dani Sánchez, Gestionatuweb.net

Desarrollador web freelance

Añade doble factor de autenticación en conexiones SSH (Ubuntu y derivados)

Suelo activar el doble factor de autenticación en todas mis cuentas, ya sean redes sociales, servicios, login de wordpress, etc.

Lo tengo activado tanto en la cuenta de cliente de mi proveedor de hosting, como en el acceso al Plesk de mi VPS.

Sin embargo, me quedaba una puerta por securizar, las conexiones SSH.

Para mí es muy cómodo acceder vía SSH a mi servidor, ya sea para actualizar paquetes, reiniciar el servidor si hay algún problema y acceder a configuraciones concretas.

Mi servidor está basado en Ubuntu 18.04, y existe un paquete para poder configurar el doble factor de autenticación de Google Authenticator en las conexiones SSH. Así que vamos a ello.

Instalar y configurar los paquetes requeridos.

El paquete en se llama: libpam-google-authenticator.

sudo apt install libpam-google-authenticator

Una vez instalado, lo primero que haremos es reiniciar el servicio sshd:

sudo systemctl restart sshd.service

El siguiente paso es editar el archivo de configuración /etc/ssh/sshd_config. A mí me gusta usar el editor nano vía terminal, pero puedes usar vim o el que prefieras:

sudo nano /etc/ssh/sshd_config

Lo único que tenemos que hacer es cambiar el parámetro ChallengeResponseAuthentication de no a yes.

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes # CAMBIAR ESTO A YES

Configurar la autenticación

Para ello lanzamos la configuración de google-authenticator:

sudo google-authenticator 

Nos aparecerá un código QR gigante en la terminal, que es el que debemos escanear con nuestra aplicación de móvil, y además tendremos la lista de códigos de emergencia en caso de que perdamos nuestro dispositivo.

Además, nos hará una serie de preguntas. La configuración recomendada sería:

  • Make tokens “time-base”: yes
  • Update the .google_authenticator file: yes
  • Disallow multiple uses: yes
  • Increase the original generation time limit: no
  • Enable rate-limiting: yes

Importante

Una vez repondido a todo, asegúrate de volver a reiniciar el servicio sshd

sudo systemctl restart sshd.service

De lo contrario, la próxima vez que intentes iniciar sesión vía SSH te dará error de login y tendrás que reiniciarlo desde Plesk, CPanel o pedirlo a tu proveedor de hosting.

Tras configurar correctamente, la próxima vez que inicies sesión, además de tu contraseña, te pedirá el código de Google Authenticator.

Deja el primer comentario

Recomiendo para hosting

Raiola Networks