Jawaban:
Pertama, kita perlu mengkonfigurasi Yubikey untuk respon tantangan. Manual yang bagus untuk Linux diberikan oleh Yubico di bawah https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html
Sekarang Anda harus dapat menggunakan yubikey Anda untuk otentikasi saat login. Satu bagian yang mudah hilang: Kunci otomatis layar ketika die Yubikey dilepas.
Saya sedikit mengadaptasi HowTo dari forum Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) agar sesuai dengan LightDM di 14,04 dan Yubikey Neo.
Pertama-tama, buat file baru dengan perintah untuk mengunci layar ketika Yubikey tidak ada:
sudo nano /usr/local/bin/yubikey
Tuliskan yang berikut ke dalam file:
#!/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
Perbedaan terbesar dengan file asli adalah penggunaan alat-dm (untuk mengunci layar dengan lightdm) dan istilah pencarian Yubico, karena Yubikey Neo terdaftar dengan "Yubico.com" di lsusb.
Tutup dan simpan file. Selain itu, kita harus membuat file dapat dieksekusi:
sudo chmod +x /usr/local/bin/yubikey
Selanjutnya, kita harus menemukan properti Yubikey untuk penugasan yang tepat.
Untuk ini deskriptor USB harus diaktifkan. Detailnya dapat ditemukan di forum Yubico .
Di terminal baru ketik perintah
udevadm monitor --environment --udev
Sekarang Anda (un-) pasang yubikey Anda dan dapatkan daftar Id. Mencari
ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT
Mereka akan digunakan dalam file udev untuk pengakuan Yubikey.
Petunjuk: ID vendor berubah jika Anda mengkonfigurasi ulang stik (mis. Dengan CCID)
Selanjutnya, buat file dengan
sudo nano /etc/udev/rules.d/85-yubikey.rules
dan ketik berikut ini
# 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"
Ubah ID sesuai dengan kunci Anda. Catatan: Anda dapat menambahkan lebih banyak yubikey dengan menyalin salin baris dengan Id lainnya!
Tutup dan simpan file. Akhirnya, layanan udev harus memuat ulang aturan:
sudo udevadm control --reload-rules
sudo service udev reload
Anda juga dapat menambahkan membunuh semua TTY menggunakan 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
Juga tampaknya ada masalah dengan izin file dari lightdm
, untuk menyelesaikannya:
sudo chown lightdm:root /etc/yubico/[user]-[number]
ID_SERIAL_SHORT
jadi saya hanya melewatkannya.