Câu trả lời:
Đầu tiên, chúng ta cần cấu hình Yubikey để đáp ứng thách thức. Một hướng dẫn tốt cho Linux được Yubico đưa ra theo https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html
Bây giờ bạn sẽ có thể sử dụng yubikey của bạn để xác thực khi đăng nhập. Một phần tiện lợi bị thiếu: Khóa tự động của màn hình khi chết Yubikey được gỡ bỏ.
Tôi đã điều chỉnh một chút HowTo từ các diễn đàn Yubico ( http://forum.yubico.com/viewtopic.php?f=23&t=1143 ) để phù hợp với LightDM trong 14.04 và Yubikey Neo.
Trước hết, tạo một tệp mới với các lệnh để khóa màn hình khi không có Yubikey:
sudo nano /usr/local/bin/yubikey
Viết như sau vào tập tin:
#!/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
Sự khác biệt lớn nhất đối với tệp gốc là việc sử dụng công cụ dm (để khóa màn hình bằng lightdm) và cụm từ tìm kiếm Yubico, vì Yubikey Neo được đăng ký với „Yubico.com Thẻ trong lsusb.
Đóng và lưu tệp. Ngoài ra, chúng tôi phải làm cho tập tin thực thi:
sudo chmod +x /usr/local/bin/yubikey
Tiếp theo, chúng ta phải tìm các thuộc tính của Yubikey cho một nhiệm vụ thích hợp.
Đối với điều này, bộ mô tả USB phải được kích hoạt. Thông tin chi tiết có thể được tìm thấy trên diễn đàn Yubico .
Trong một loại thiết bị đầu cuối mới trong lệnh
udevadm monitor --environment --udev
Bây giờ, bạn (un-) cắm yubikey của bạn và nhận danh sách Id. Tìm kiếm
ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT
Chúng sẽ được sử dụng trong tệp udev để nhận dạng Yubikey.
Gợi ý: ID nhà cung cấp thay đổi nếu bạn cấu hình lại thanh (ví dụ: với CCID)
Hơn nữa, tạo một tập tin với
sudo nano /etc/udev/rules.d/85-yubikey.rules
và gõ như sau
# 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"
Thay đổi ID theo khóa của bạn. Lưu ý: Bạn có thể thêm nhiều yubikey bằng cách sao chép đơn giản dán dòng với các Id khác!
Đóng và lưu tệp. Cuối cùng, dịch vụ udev phải tải lại các quy tắc:
sudo udevadm control --reload-rules
sudo service udev reload
Bạn cũng có thể thêm tiêu diệt tất cả TTY bằng cách sử dụng 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
Ngoài ra, dường như có một vấn đề với quyền truy cập tệp từ lightdm
, để giải quyết nó:
sudo chown lightdm:root /etc/yubico/[user]-[number]
ID_SERIAL_SHORT
nên tôi đã bỏ qua nó.