Respuestas:
Primero, necesitamos configurar el Yubikey para la respuesta al desafío. Yubico proporciona un buen manual para Linux en https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html
Ahora debería poder usar su yubikey para la autenticación al iniciar sesión. Falta una pieza conveniente: el bloqueo automático de la pantalla cuando se quita el Yubikey.
Adapte un poco el HowTo de los foros de Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) para que coincida con LightDM en 14.04 y el Yubikey Neo.
En primer lugar, cree un nuevo archivo con los comandos para bloquear la pantalla cuando el Yubikey no esté presente:
sudo nano /usr/local/bin/yubikey
Escriba lo siguiente en el archivo:
#!/bin/bash
# Double checking if the Yubikey is actually removed, Challenge-Response won't trigger the screensaver this way.
if [ -z "$(lsusb | grep Yubico)" ]; then
logger "YubiKey Removed or Changed"
# Running the LightDM lock command
export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0"
/usr/bin/dm-tool lock
fi
Las mayores diferencias con el archivo original es el uso de la herramienta dm (para bloquear la pantalla con lightdm) y el término de búsqueda Yubico, ya que Yubikey Neo está registrado con „Yubico.com“ en lsusb.
Cierra y guarda el archivo. Además, tenemos que hacer que el archivo sea ejecutable:
sudo chmod +x /usr/local/bin/yubikey
A continuación, tenemos que encontrar las propiedades del Yubikey para una asignación adecuada.
Para esto, el descriptor USB debe estar activado. Los detalles se pueden encontrar en el foro de Yubico .
En una nueva terminal, escriba el comando
udevadm monitor --environment --udev
Ahora usted (des-) conecta su yubikey y obtiene una lista de ID. Buscando
ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT
Se utilizarán en el archivo udev para el reconocimiento de Yubikey.
Insinuación: la ID del proveedor cambia si reconfigura el dispositivo (por ejemplo, con CCID)
Además, cree un archivo con
sudo nano /etc/udev/rules.d/85-yubikey.rules
y escriba lo siguiente
# Yubikey Udev Rule: running a bash script in case your Yubikey is removed
ACTION=="remove", ENV{ID_VENDOR_ID}=="1050", ENV{ID_MODEL_ID}=="0010", ENV{ID_SERIAL_SHORT}=="0001711399", RUN+="/usr/local/bin/yubikey"
Cambie la identificación de acuerdo con su clave. Nota: ¡Puede agregar más yubikey simplemente copiando y pegando la línea con otros ID!
Cierra y guarda el archivo. Finalmente, el servicio udev tiene que recargar las reglas:
sudo udevadm control --reload-rules
sudo service udev reload
También puede agregar matar a todos los TTY usando pkill -KILL -t
:
if [ -z "$(lsusb | grep Yubico)" ]; then
logger "YubiKey Removed or Changed"
# Running the LightDM lock command
export XDG_SEAT_PATH="/org/freedesktop/DisplayManager/Seat0"
/usr/bin/dm-tool lock
ACTIVE_TTY=$(who | awk '{ print $2 }' | grep tty | uniq)
echo $ACTIVE_TTY | xargs -I {} pkill -KILL -t {}
fi
También parece haber un problema con los permisos de archivo de lightdm
, para resolverlo:
sudo chown lightdm:root /etc/yubico/[user]-[number]
ID_SERIAL_SHORT
así que simplemente me salté.