Cómo loguearte en Linux usando un pendrive

68DInstalá pamusb

sudo apt-get install libpam-usb pamusb-tools

Añadí tu pendrive como token de autenticación:

Conectá el pendrive en el puerto USB y ejecutá

sudo pamusb-conf –add-device llaveusb

Añadí usuarios a pam-usb:

Es muy fácil añadir usuarios como se puede ver en el siguiente ejemplo en el que añadiremos a earendil para autenticar con pam-usb:

sudo pamusb-conf –add-user earendil

Probá si funciona la autenticación:

Con el pendrive conectado, reemplazando earendil por el nombre de usuario que hayas elegido:

sudo pamusb-check earendil

Si dice: Access granted es porque todo va sobre ruedas.

Pam-usb como sistema de login:

Editá el archivo /etc/pam.d/common-auth y añadí la siguiente línea al principio:

auth sufficient pam_usb.so

Si reemplazas sufficient por required. GDM hara un doble chequeo, de contraseña y de token. De otro modo, solo verificara el token

Para hacer todo esto se puede utilizar cualquier pendrive sin que sufra ninguna modificación, ya que el pam mira los datos del dispositivo hardware, como el fabricante, uuid y número de serie. Lo interesante es que aunque hiciésemos una copia completa del dispositivo, por ejemplo con dd, no obtendríamos una llave correcta para el token configurado.

Por último, cabe mencionar que pamusb permite la ejecución automática de comandos al conectar el pendrive, así que podríamos crear un sistema para hacer copias de seguridad al conectar la llave usb, o un sistema de fichajes y muchas otras cosas, pero esto ya lo dejo para que lo investiguen uds.

Fuente