Aprovecho para reproducir un aporte de House of Sysadmins.
En este articulo veremos una forma de augmentar la seguridad de los servidores solo permitiendo autenticar root mediante un lápiz usb.
- Una maquina con linux
- Librerías pam usb
- Lápiz USB
Instalando PAM USB
# apt-get install libpam-usb
Instalando las PAM USB Tools
# apt-get install pamusb-tools
Añadiendo nuestro lápiz como Token de autenticación
Primero de todo tendremos de pinchar el pendrive en el puerto usb y ejecutar:
# pamusb-conf —add-device MyToken
Donde MyToken es un nombre identificativo para el pendrive puede ser cualquier otro
Añadiendo Usuarios a PAM USB
Podemos añadir fácilmente usuarios en este ejemplo añadiremos el usuario root como usuario autenticado de PAM USB
# pamusb-conf —add-user root
Probando si funciona la autenticación
Si tenemos el Pendrive Conectado y ejecutamos
# pamusb-check root
* Authentication request for user «root» (pamusb-check)
* Device “MyToken” is connected (good).
* Performing one time pad verification…
*
Access granted.
Veremos que al final aparece Acces Granted
Si sacamos el pendrive veremos que al ejecutar lo anterior nos devuelve
Access denied.
PAM USB como sistema de autenticación
Editaremos el fichero /etc/pam.d/common-auth y añadiremos la siguiente linea al principio del mismo:
auth sufficient pam_usb.so
En este momento podriamos iniciar una sesión gdm sin necesidad de introducir password , simplemente conectando la llave usb.
Otras opciones interesantes es que permite la ejecucion de comandos al conectar el lápiz , podriamos por lo tanto crear un sistema para hacer copias automáticas de seguridad al conectar la llave usb.
La autenticación se puede realizar con cualquier llave usb al realizar estos pasos no se modifica en ningun momento el contenido de los datos del usb , si no que se extraen los datos que hace que cada dispositivo sea único.
- Fabricante
- Uuid
- No de serie
Por lo tanto aunque realizáramos una copia bit a bit del dispositivo no podriamos crear otro dispositivo igual para autenticar.
Fuente: House Of Sysadmins Wiki

Gracias por la info, tengo una pregunta, imaginate el caso que tengo un linux como PDC con samba y ldap, podria con esto hacer que los usuarios windows que se logean a mi PDC deban introducir en sus PCs el llavero y les permitar logearse al dominio?
La verdad no sabría decirte, sería cuestión de googlearlo un poco. Tené en cuenta que este ejemplo es para PAM (Pluggable Authentication Modules) de Linux… si tus usuarios en vez de loguearse por PAM lo hacen por LDAP, entonces deberías encontrar algún módulo que haga la autenticación a ese nivel con el USB drive. Técnicamente es posible, porque como se explica en el artículo, lo que uno hace es asociar una clave única generada para un dispositivo con un usuario. Pero habría que ver si existe alguna implementación para lo que vos necesitás.
Saludos
Y si pierdo el pendrive?
SE puede acceder con la contraseña sin necesidad del pendrive?
Saludos y muy buen tutorial
Entiendo que sí. Creo que depende de como configures PAM.
y si quiero poner (1ro)hacer login y que hay me pida la autenticacion para iniciar como hago?? se puede?