GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo iniciar sesión en Linux usando una unidad flash USB en lugar de una contraseña usando pam_usb (fork)

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


Debian
  1. Cómo grabar un archivo ISO en una unidad USB en Linux usando Etcher

  2. Cómo crear una unidad USB de arranque usando el comando dd

  3. Cómo escribir archivos de registro en RAM usando Log2ram en Linux

  4. Cómo montar una unidad flash USB en Linux

  5. ¿Cómo crear un Memtest86+ de arranque en una unidad flash USB?

Cómo instalar un Ubuntu completo en una unidad flash USB

Cómo crear una unidad USB Ubuntu Live usando la línea de comandos

Cómo proteger con contraseña un archivo usando Vim en Linux

Cómo formatear una unidad USB en Debian

Cómo crear una unidad USB de arranque Rocky Linux 8

Cómo crear una unidad flash USB de arranque de Linux [Tutorial]