Implementación de la autenticación de dos factores (2FA) con SSH en un servidor Debian 11

watch 7m, 48s
views 2

11:22, 28.07.2026

Contenido del artículo
arrow

  • Qué es la autenticación de dos factores
  • Paso 1: Configuración de Google Authenticator en un servidor Debian
  • Paso 2: Habilitar Google Authenticator para el acceso SSH
  • Uso de la autenticación por contraseña con 2FA
  • Combinación de la autenticación por clave pública con la autenticación de dos factores (2FA)
  • Consideraciones importantes
  • Desactivación de la autenticación de dos factores de SSH
  • Resumen final

Para mejorar el nivel de seguridad de tu servidor Debian 11, se recomienda encarecidamente utilizar la autenticación de dos factores. Si deseas implementar la autenticación de dos factores (2FA), en esta guía encontrarás información detallada sobre el proceso de configuración.

Qué es la autenticación de dos factores

Para acceder al servidor Debian, normalmente los usuarios solo tienen que introducir la contraseña o la clave SSH. La autenticación de dos factores hace que el inicio de sesión sea más seguro, ya que requiere dos datos distintos para acceder al sistema. Además de una contraseña estándar, los usuarios deben introducir una contraseña de un solo uso para iniciar sesión en el servidor Debian. Esta contraseña temporal se genera mediante el algoritmo TOTP. Hoy en día, muchas plataformas tienen en cuenta el uso de la autenticación de dos factores por motivos de seguridad, y es una excelente idea que puede proteger significativamente tu servidor frente a intentos no autorizados de acceso.

En esta guía, compartiremos nuestras recomendaciones prácticas sobre el proceso de configuración de la autenticación de dos factores (2FA) para que comprendas claramente en qué consisten la autenticación por clave pública y la autenticación por contraseña. El software que se utilizará para la 2FA es de código abierto y se llama «libpam authenticator».

Paso 1: Configuración de Google Authenticator en un servidor Debian

Para instalar el autenticador desde el repositorio predeterminado, debes utilizar la siguiente línea de comandos:

sudo apt install -y libpam-google-authenticator

Para crear la clave, utiliza el siguiente comando:

google-authenticator

Una vez hecho esto, se te preguntará si los tokens de autenticación deben basarse en el tiempo y aquí debes especificar «Y». A continuación, obtendrás un código QR que deberás escanear con la aplicación TOTP de tu teléfono. Aquí tienes dos productos que vale la pena utilizar:

-       Aplicación móvil Google Authenticator, que no es de código abierto. Si no quieres utilizar productos de Google, puedes optar por los de Red Hat y probar FreeOTP.

-       Google Authenticator se puede instalar fácilmente desde la App Store o Google Play en tu dispositivo.

No olvides ampliar la ventana para escanear el código QR completo con la autenticación elegida en tu dispositivo. Una vez completado este proceso, recibirás una contraseña de 6 dígitos en tu dispositivo móvil y, según la configuración predeterminada, esta contraseña cambiará cada 30 segundos. Introdúcela para confirmar tu acceso.

En la ventana de la terminal, verás la información sobre el código de verificación, la clave secreta y el código de seguridad. Es muy recomendable que guardes estos datos en un lugar seguro para futuras necesidades.

A continuación, aparecerán un par de preguntas debajo de esta información a las que debes responder «Y» (Sí). Al hacerlo, aumentas el intervalo de tiempo, actualizas el archivo de configuración del Authenticator, activas los límites de frecuencia para una mayor protección y desactivas el acceso de múltiples usuarios.  

Paso 2: Habilitar Google Authenticator para el acceso SSH

Uso de la autenticación por contraseña con 2FA

Para aquellos que tengan previsto utilizar la autenticación por contraseña con 2FA. A continuación se ofrece una breve guía sobre todo el proceso; comience abriendo el archivo de configuración con:

sudo nano /etc/ssh/sshd_config

Una vez en el archivo, busque parámetros como ChallengeResponseAut. y UseRAM, y establezca ambos en «yes».

PAM es un módulo de autenticación específico que permite integrar fácilmente diversos métodos de autenticación en tu sistema Debian. Para que la autenticación mediante SSH funcione correctamente, ambos parámetros deben estar habilitados.

Otro parámetro importante que debe establecerse en «Yes» es «PermitRootLogin». Para permitir el proceso de autenticación de dos factores, su valor no debe ser «prohibited-PW» ni «no», así que comprueba que todo esté correctamente indicado en el archivo de configuración.

Tras guardar el archivo con todos los cambios realizados, debes seguir estos pasos importantes:

sudo nano /etc/pam.d/sshd

Una vez en el archivo, busca la línea con «ChallengeResponseAuth.» y cambia también su valor a «Yes». Este parámetro habilita un proceso de autenticación mediante contraseña adecuado.

@include common-auth

Además, no olvides añadir la siguiente información:

auth   required   pam_google_authenticator.so

Guarda el archivo con los cambios realizados y reinicia SSH utilizando la siguiente línea:

sudo systemctl restart ssh

Una vez que hayas seguido todas las instrucciones mencionadas anteriormente, se te pedirá el código de verificación, así como tu contraseña, al iniciar sesión en el sistema. El código de verificación es un dato generado de un solo uso que recibirás en tu dispositivo móvil. Una recomendación más que debes tener en cuenta: no cierres la sesión actual. Para probar el proceso, debes abrir otra ventana y, en caso de que surja algún problema, la sesión SSH inicial será crucial para solucionarlo.  

Combinación de la autenticación por clave pública con la autenticación de dos factores (2FA)

Para combinar la autenticación por clave pública con la autenticación de dos factores (2FA), aquí tienes un proceso directo que debes seguir. Empieza abriendo el archivo de configuración:

sudo nano /etc/ssh/sshd_config

Una vez en el archivo, tendrás que buscar dos parámetros y establecerlos en «Yes». Busca «ChallengeResponseAuthen.» y «UsePAM» y, una vez encontrados, cambia su valor al necesario.

PAM hace referencia a un módulo de autenticación específico necesario para integrar fácilmente diversos métodos de autenticación en el sistema Debian. Para activar Google Authenticator, ambos parámetros deben estar habilitados.

En caso de que también necesites que el usuario root pueda acceder a la autenticación de dos factores, busca además un parámetro adicional llamado «PermitRootLogin». Una vez localizado, debes cambiar su valor a «Y» (Sí); cualquier otro valor no es adecuado en esta variante.

Una vez completados todos los pasos mencionados anteriormente, debes añadir una línea más al archivo:

AuthenticationMethods publickey,keyboard-interactive

Cierra el archivo con todos los cambios guardados. El siguiente paso consistirá en editar las reglas de PAM:

sudo nano /etc/pam.d/sshd

En el archivo, deberías encontrar el siguiente parámetro: ChallengeResponseAuthen con el valor «Yes». El siguiente paso consistirá en comentar esta parte, ya que vas a utilizar la clave SSH.

@include common-auth

Para habilitar el proceso, la siguiente línea es de vital importancia:

auth   required   pam_google_authenticator.so

Una vez realizados todos los cambios, guarda el archivo y reinicia el sistema con el comando:

sudo systemctl restart ssh

Ahora, cuando todo esté correctamente configurado en tu servidor Debian, podrás utilizar procesos de inicio de sesión seguros en los que deberás introducir tanto el código de verificación como la clave SSH. Un último recordatorio: no cierres la sesión actual. Abre otra ventana de terminal y comprueba si todo funciona como es debido; en caso de que surja algún problema, podrás recurrir a esta sesión inicial.

Consideraciones importantes

-        Los usuarios de los servidores Debian deben escanear sin falta el código QR y ejecutar los comandos del autenticador para configurar todo correctamente. De lo contrario, se producirán problemas relacionados con la denegación de permisos.

-        No olvides guardar tu código de seguridad. En caso de emergencia, si por cualquier motivo no puedes acceder a tu dispositivo móvil, puedes utilizar uno de los 5 códigos de seguridad disponibles para completar el proceso de verificación. Cada código solo se puede utilizar una vez, así que tenlo en cuenta.

-        Para cambiar la clave secreta, solo tienes que ejecutar google-authenticator el comando y actualizar este archivo.

-        Para que el proceso de autenticación se desarrolle sin problemas, también debes configurar las zonas horarias. La contraseña de un solo uso se genera a partir de la hora actual, por lo que es recomendable activar la sincronización entre el servidor Debian y tu dispositivo móvil.

Desactivación de la autenticación de dos factores de SSH

Para iniciar el proceso de desactivación, debes utilizar:

sudo nano /etc/pam.d/sshd

El siguiente paso es comentar la línea:

auth   required   pam_google_authenticator.so

En caso de que hayas añadido la línea con AuthenticationMethods, debes eliminar keyboard-interactive parte. A continuación, añada en su lugar publickey y guarde los cambios. El último paso consistirá en reiniciar el sistema con:

sudo systemctl restart ssh

Resumen final

Esperamos que esta información te haya resultado útil y que ahora tengas una idea clara de cómo funcionan todos los procesos y de cómo configurarlo todo correctamente. En caso de que surjan algunos problemas, también hemos comentado un par de recomendaciones para solucionar los problemas de autenticación.

Compartir

¿Te ha resultado útil este artículo?

Ofertas populares de VPS

-10%

CPU
CPU
4 Epyc Cores
RAM
RAM
4 GB
Space
Space
50 GB NVMe
Bandwidth
Bandwidth
Unlimited
aiKVM-NVMe 4096 Linux

17.15 /mes

/mes

Facturado cada 12 meses

-21.5%

CPU
CPU
2 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
300 GB
wKVM-SSD 4096 HK Windows

40 /mes

/mes

Facturado cada 12 meses

-9.3%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 16384 Windows

53.99 /mes

/mes

Facturado cada 12 meses

-21%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
8 TB
wKVM-SSD 8192 Metered Windows

65 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
6 Epyc Cores
RAM
RAM
16 GB
Space
Space
150 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 16384
OS
CentOS
Software
Software
Keitaro

55.54 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 32768 Linux

69.99 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 8192 Windows

28.44 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
10 Epyc Cores
RAM
RAM
64 GB
Space
Space
400 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 65536 Linux

135.49 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
MT5 KVM 8192 Windows

29.99 /mes

/mes

Facturado cada 12 meses

-4.5%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 4096 Windows

17.37 /mes

/mes

Facturado cada 12 meses

Otros artículos sobre este tema

cookie

¿Acepta las cookies y la política de privacidad?

Utilizamos cookies para asegurar que damos la mejor experiencia en nuestro sitio web. Si continúa sin cambiar la configuración, asumiremos que acepta recibir todas las cookies del sitio web HostZealot.