Quero usar meu Yubikey Neo para fazer login no Ubuntu 14.04. Além disso, seria conveniente que a tela seja bloqueada automaticamente sempre que eu desconectar o Yubikey.
fonte
Quero usar meu Yubikey Neo para fazer login no Ubuntu 14.04. Além disso, seria conveniente que a tela seja bloqueada automaticamente sempre que eu desconectar o Yubikey.
Primeiro, precisamos configurar o Yubikey para responder a desafios. Um bom manual para Linux é fornecido pelo Yubico em https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html
Agora você deve poder usar seu yubikey para autenticação no login. Uma peça conveniente está faltando: O bloqueio automático da tela quando o Yubikey é removido.
Adaptei um pouco o HowTo nos fóruns do Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) para combinar com o LightDM no 14.04 e o Yubikey Neo.
Primeiro, crie um novo arquivo com os comandos para bloquear a tela quando o Yubikey não estiver presente:
sudo nano /usr/local/bin/yubikey
Escreva o seguinte no arquivo:
#!/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
As maiores diferenças no arquivo original são o uso da ferramenta dm (para bloquear a tela com lightdm) e o termo de pesquisa Yubico, já que o Yubikey Neo está registrado com "Yubico.com" no lsusb.
Feche e salve o arquivo. Além disso, temos que tornar o arquivo executável:
sudo chmod +x /usr/local/bin/yubikey
Em seguida, temos que encontrar as propriedades do Yubikey para uma atribuição adequada.
Para isso, o descritor USB deve estar ativado. Detalhes podem ser encontrados no fórum Yubico .
Em um novo tipo de terminal no comando
udevadm monitor --environment --udev
Agora você (des-) conecta seu yubikey e obtém uma lista de IDs. Procurando por
ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT
Eles serão usados no arquivo udev para reconhecimento do Yubikey.
Dica: O ID do fornecedor muda se você reconfigurar o stick (por exemplo, com CCID)
Além disso, crie um arquivo com
sudo nano /etc/udev/rules.d/85-yubikey.rules
e digite o seguinte
# 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"
Mude o ID de acordo com sua chave. Nota: Você pode adicionar mais yubikey por cópia simples, cole a linha com outros IDs!
Feche e salve o arquivo. Por fim, o serviço udev precisa recarregar as regras:
sudo udevadm control --reload-rules
sudo service udev reload
ID_SERIAL_SHORT
então apenas pulei.Você também pode adicionar matando todos os TTY usando
pkill -KILL -t
:Também parece haver um problema com as permissões de arquivo de
lightdm
, para resolvê-lo:fonte