pam_usb es un módulo PAM que proporciona autenticación de hardware para Linux con unidades flash USB comunes, tarjetas SD, MMC, etc.
Esto le permite iniciar sesión sin una contraseña simplemente conectando una memoria USB o una tarjeta de memoria a su computadora. Esta autenticación USB también funciona cuando se ejecutan comandos de terminal que requieren un superusuario; por ejemplo, no se le pedirá una contraseña cuando use sudo.
pam_usb funciona con cualquier aplicación compatible con PAM, como B. Administrador de inicio de sesión (GDM, Lightdm, etc.) y su / sudo.
Para la autenticación, pam_usb usa el número de serie de la unidad flash USB/tarjeta de memoria, el modelo y el fabricante, y las almohadillas de un solo uso (OTP) opcionales. Cuando los One Time Pads están habilitados (esto está habilitado de forma predeterminada, pero puede deshabilitarlo), el archivo público de los pads de usuario en la tarjeta de memoria/USB estará en una carpeta oculta llamada. guardado .pamusb
mientras que la clave privada se almacena en una carpeta oculta del mismo nombre que se almacena en el directorio de inicio del usuario.
El desarrollador original de esta herramienta parece haberse dado por vencido, no hay nuevas confirmaciones desde abril de 2016 y no hay nuevos lanzamientos desde 2011. Desde entonces, se han realizado algunas mejoras en varios repositorios. Para mejorar aún más pam_usb, la herramienta se bifurcó, teniendo también en cuenta el trabajo realizado anteriormente en otros repositorios (que incluyen mejoras como el puerto UDisk2).
funciones pam_usb:
- Autenticación sin contraseña (tarjeta de memoria/USB). Simplemente conecte la memoria USB/tarjeta de memoria que configuró con pam_usb para iniciar sesión
- Admite memorias USB, tarjetas SD, MMC, etc.
- Prueba automática del dispositivo. pam_usb no requiere que se monte la unidad flash USB; puede ubicar el dispositivo USB y acceder a sus datos directamente usando UDisks
- No es necesario volver a formatear su unidad flash USB
- Número de serie USB, modelo y verificación del fabricante
- Admite autenticación de One Time Pads (OTP)
- Se puede usar como autenticación de dos factores y requiere tanto la memoria USB como la contraseña para iniciar sesión en su sistema Linux
- Puede usar la misma tarjeta de memoria/memoria USB en varias máquinas
Hay 3 herramientas que vienen con pam_usb:pamusb-agent
que se puede usar para iniciar acciones cuando se autentica o elimina el dispositivo (por ejemplo, puede usar un comando para bloquear la pantalla cuando se elimina el dispositivo), pamusb-conf
lo que facilita la configuración de pam_usb y pamusb-check
que se utiliza para integrar el motor de autenticación pam_usb en scripts o aplicaciones.
pam_usb actualmente no admite agregar más de un dispositivo por usuario. Por ahora, pamusb-conf
no agrega dispositivos para usuarios ya configurados. Puedes seguir este problema aquí.
Vale la pena mencionar que pam_usb solo se usa para iniciar sesión y no para desbloquear el conjunto de claves de GNOME o descifrar carpetas privadas . GNOME Keyring no parece admitir el desbloqueo por otra cosa que no sea el uso de la contraseña. Incluso si inicia sesión automáticamente mientras usa pam_usb y la unidad flash USB emparejada está conectada, aparecerá el cuadro de diálogo Desbloqueo del llavero de GNOME, que le solicitará que ingrese su contraseña de desbloqueo. lo mismo sucede, por ejemplo, si está utilizando la autenticación de huellas dactilares.
He probado esto con GDM y LightDM. En ambos casos, tuve que hacer clic en mi nombre de usuario en la pantalla de inicio de sesión y presionar Intro para iniciar sesión sin tener que ingresar la contraseña de la cuenta.
[[Editar]]En un comentario a continuación, el desarrollador señaló que estaba tratando de encontrar ayuda con una revisión de seguridad del código. Si puede ayudar, comuníquese con ellos a través de github.
Relacionado con USB:cree una unidad USB de arranque simplemente copiando la ISO en la memoria USB usando Ventoy (Linux y Windows)
Instalar y configurar pam_usb (bifurcación)
este pam_usb-fork no se empaquetó en los repositorios oficiales de ninguna distribución de Linux. La versión anterior 0.5.0 (que usa Python2 y Udisks1) está disponible para un par de distribuciones de Linux, pero falta en la mayoría.
El desarrollador de la bifurcación pam_usb ha empaquetado esta versión de pam_usb para las versiones actuales de Debian y Ubuntu (así como Linux Mint, Pop! _OS y otras distribuciones de Linux basadas en Debian o Ubuntu) y puede descargarla aquí (desde allí solo necesita el paquete libpam-usb).
El repositorio fork pam_usb también tiene un Arch Linux / Manjaro PKGBUILD disponible .
Para otras distribuciones de Linux, deberá compilarlo desde la fuente .
Si está instalando pam_usb (fork) desde el paquete Debian proporcionado por el desarrollador, durante la instalación se le pedirá que seleccione el dispositivo y el usuario:
Si este no es tu caso, o si quieres hacerlo manualmente más tarde, así es como puedes configurar pam_usb. Inserte una unidad flash USB o una tarjeta de memoria y ejecute el siguiente comando para agregar su nuevo dispositivo como método de autenticación:
sudo pamusb-conf --add-device DEVICE_NAME
Donde DEVICE_NAME
puede ser lo que quieras
A continuación, debe agregar su usuario a la configuración de pam_usb usando:
sudo pamusb-conf --add-user USERNAME
Donde USERNAME
es el usuario para el que desea habilitar la autenticación basada en tarjeta de memoria/USB.
El nombre de usuario y la información del dispositivo se guardan en /etc/security/pam_usb.conf
Archivo.
Ahora puede verificar la configuración para ver si todo está correcto usando:
pamusb-check USERNAME
Es importante tener en cuenta que si está utilizando los paquetes DEB proporcionados por el desarrollador, no necesita configurar nada más. Pero si instaló pam_usb desde la fuente, debe agregar pam_usb al proceso de autenticación del sistema como se explica aquí.
Para obtener más opciones de configuración de pam_usb, consulte su página wiki de configuración.
Configure pam_usb para bloquear la pantalla cuando se extraiga la llave USB/tarjeta de memoria (y desbloquearla una vez que se vuelva a insertar)
pam_usb puede ejecutar comandos con la ayuda de pamusb-agent cuando se inserta o retira la memoria USB/tarjeta de memoria.
La wiki de pam_usb tiene un ejemplo de configuración para bloquear la pantalla al retirar la memoria USB/tarjeta de memoria y desbloquearla al volver a insertarla. Este ejemplo ya no funciona en Gnome (pero debería funcionar en otros entornos de escritorio al reemplazarlo) gnome-screensaver-command
con cinnamon-screensaver-command
para escritorio Cinnamon, mate-screensaver-command
para escritorio MATE, etc.). [[Editar]]Puedes sustituir eso por xdg-screensaver
(Parte del xdg-utils
Paquete; p.ej. xdg-screensaver lock
para bloquear la pantalla y xdg-screensaver reset
para desbloquearlo).
Para que pam_usb bloquee la pantalla cuando se retira la memoria USB / tarjeta de memoria y, una vez que se vuelve a conectar el dispositivo, se desbloquea en distribuciones de Linux con sistema (solo he probado esta configuración en Gnome con GDM3, estoy usando la siguiente configuración (/etc/security/pam_usb.conf
):
...................................
<user id="USERNAME">
<device>DEVICE_NAME</device>
<!-- When the user "USERNAME" removes the usb device, lock the screen -->
<agent event="lock">
<cmd>/usr/local/bin/screensaver-lock</cmd>
</agent>
<!-- Resume operations when the usb device is plugged back and authenticated -->
<agent event="unlock">
<cmd>/usr/local/bin/screensaver-unlock</cmd>
</agent>
</user>
...................................
Se utilizan dos scripts para que esto funcione. /usr/local/bin/screensaver-lock
se usa para bloquear la pantalla, y /usr/local/bin/screensaver-unlock
para desbloquear la pantalla. Aquí están sus contenidos.
/usr/local/bin/screensaver-lock
:
#!/bin/sh
SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`
if [ -n $SESSION ]; then
loginctl lock-session $SESSION
fi
/usr/local/bin/screensaver-unlock
:
#!/bin/sh
SESSION=`loginctl list-sessions | grep USERNAME | awk '{print $1}'`
if [ -n $SESSION ]; then
loginctl unlock-session $SESSION
fi
Reemplazar en ambos USERNAME
con tu nombre de usuario.
También le puede interesar:KDE Connect / GSConnect:Cómo bloquear/desbloquear su escritorio Linux usando un dispositivo Android
arriba wiki.ubuntuusers.de