Habilite la contraseña de un solo uso en Ubuntu 24.04 para SSH o inicio de sesión local
Este tutorial muestra cómo habilitar One Time PassWord en Ubuntu 24.04 para inicio de sesión SSH local o remoto.
One Time PassWord, OTPW en resumen, es un módulo PAM que es útil para permitir a un usuario iniciar sesión en una computadora/servidor público o compartido usando una contraseña de un solo uso, que funciona solo una vez.
Al generar una lista de contraseñas de OTPW y configurar su sistema para permitir inicios de sesión de OTPW, solicitará una de las contraseñas de OTPW al azar en cada inicio de sesión. Y esa contraseña nunca volverá a funcionar una vez que haya iniciado sesión correctamente con ella.
Paso 1: instale el paquete OTPW
El paquete OTPW está disponible en el repositorio universal para todas las versiones actuales de Ubuntu.
Para instalarlo, abra la terminal (Ctrl+Alt+T) o conéctese para eliminar el servidor y ejecute el comando:
sudo apt install libpam-otpw otpw-bin
Aquí, el paquete libpam-otpw
incluye el módulo PAM que puede habilitar el inicio de sesión con contraseña OTPW. Mientras que otpw-bin
ofrece un comando para generar contraseñas OTPW.
Paso 2: genera una lista de contraseñas OTPW
Después de instalar los paquetes anteriores, ahora puede ejecutar el siguiente comando para generar contraseñas aleatorias:
otpw-gen > ~/otpw_passwords
El comando generará un archivo llamado “otpw_passwords
” en el directorio de inicio del usuario, que incluye 280 contraseñas generadas aleatoriamente.
Y le pedirá que establezca una contraseña de prefijo. Al iniciar sesión con el módulo OTPW, debe escribir este contraseña de prefijo + contraseña de OTPW. Por lo tanto, otros no pueden acceder a su cuenta incluso si perdió la lista de contraseñas.
En cualquier momento, puede volver a ejecutar el último comando para volver a crear la lista de contraseñas. Lo cual anulará tanto el prefijo anterior como las contraseñas de un solo uso.
Las contraseñas funcionan solo para la cuenta de usuario que las generó. Para cualquier otro usuario, ejecute el comando su nombre de usuario
para cambiar a ese usuario y vuelva a ejecutar otpw. -gen
comando, o use el siguiente comando en su lugar:
su -c "otpw-gen > ~/otpw_passwords" username
En el comando, reemplace nombre de usuario
con el nombre de la cuenta de destino.
Y aquí hay una lista de contraseñas de ejemplo. Para el suyo, tome una foto con su teléfono o imprímala para usarla más adelante.
Paso 3: Indíquele a su sistema que permita el inicio de sesión con contraseña OTPW
1. Primero, ejecute el siguiente comando para crear un archivo de configuración PAM y editarlo con el editor de texto de línea de comando nano:
sudo nano /etc/pam.d/ssh-otpw
Cuando se abra, pase las líneas a continuación, que indican que se autentique con el módulo otpw y permita el acceso inmediatamente si tiene éxito.
auth sufficient pam_otpw.so
session optional pam_otpw.so
Finalmente, presione Ctrl+S para guardar y Ctrl+X para salir.
Habilite OTPW para iniciar sesión SSH
2. Para habilitar el módulo OTPW PAM para SSH, edite el archivo de configuración PAM sshd
mediante el comando:
sudo nano /etc/pam.d/sshd
Cuando se abra el archivo, incluya la configuración que acaba de realizar agregando @include ssh-otpw. TENGA EN CUENTA que necesita:
- ¡Desactive @include common-auth (agregue # al principio), por lo que el clásico inicio de sesión con contraseña estática ya NO funcionará (para todos los usuarios)! Asegúrese de tener un método de autenticación alternativo en caso de quedarse sin contraseñas OTPW.
- o asegúrese de que @include common-auth esté debajo de @include ssh-otpw, o le solicitará una contraseña estática primero.
3. Después de eso, edite también el archivo de configuración del demonio SSH ejecutando el comando:
sudo nano /etc/ssh/sshd_config
Cuando se abra el archivo, busque las líneas a continuación y configúrelas (o agregue líneas si NO existen) para usar la autenticación PAM:
Usar PAM sí
KbdInteractiveAuthentication sí
También establezca PasswordAuthentication no
, aunque la contraseña estática seguirá funcionando a menos que @include common-auth
esté deshabilitado en la configuración de PAM o KbdInteractiveAuthentication
también esté deshabilitado. en esta configuración sshd.
4. Cuando termine de editar el archivo, presione Ctrl+S para guardar y Ctrl+X para salir. Finalmente, reinicie SSH para aplicar los cambios:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
Para Ubuntu 22.04 y versiones anteriores, solo debería funcionar ejecutar sudo systemctl restart ssh
.
5. A continuación, puede intentar iniciar una conexión SSH a esta computadora o servidor.
Debería solicitar una contraseña con 3 números digitales. En la captura de pantalla, solicitó la contraseña 004. Mientras configuré contraseña de prefijo en “ade564”, el archivo de contraseña me muestra 004 Zh63 7Qyi. Entonces, necesito ingresar ade564Zh637Qyi para obtener el pase.
NOTA 1: Si dejó @include common-auth
habilitado en el archivo de configuración /etc/pam.d/sshd
, escriba la contraseña estática del usuario. ¡También te dejo entrar!
NOTA 2: Si alguien más intenta iniciar sesión al mismo tiempo que usted inicia sesión, PUEDE solicitar 3 contraseñas en lugar de una. El mensaje puede verse como "Contraseña 004/027/134". En este caso, deberás escribir prefijo + las 3 contraseñas en el orden. Después de iniciar sesión, debe eliminar ~/.otpw.lock
o siempre solicitará 3 contraseñas.
(opcional) Habilite la contraseña de un solo uso para iniciar sesión en el escritorio local
Si desea utilizar una contraseña de un solo uso para iniciar sesión en Ubuntu Desktop, edite el archivo de configuración PAM common-auth
ejecutando el comando:
sudo nano /etc/pam.d/common-auth
Cuando se abra el archivo, agregue @include ssh-otpw en la parte superior y guárdelo.
La próxima vez en la pantalla de inicio de sesión, cuando haga clic en el usuario que ha generado la lista de contraseñas de OTPW, le mostrará "Contraseña XXX" solicitando la contraseña de OTPW correspondiente (no olvide agregar el prefijo de contraseña mientras escribe).
Además, ingrese la contraseña de usuario estática y también le permitirá ingresar.
Deshacer :
Para deshabilitar la contraseña de un solo uso, simplemente elimine la línea @include ssh-otpw de /etc/pam.d/sshd
o /etc/pam.d/ El archivo common-auth
depende de cuál haya habilitado.
Opcionalmente, puede eliminar el paquete del módulo para ahorrar poco espacio en disco:
sudo apt remove --autormove libpam-otpw