Yubikey Neoを使用してUbuntu 14.04にログインします。また、Yubikeyを取り外すたびに画面が自動的にロックされると便利です。
最初に、チャレンジ応答用にYubikeyを構成する必要があります。 Linuxの優れたマニュアルは https://developers.yubico.com/yubico-pam/Authentication_Using_Challenge-Response.html でYubicoから提供されています
これで、ログイン時に認証のためにyubikeyを使用できるようになります。便利なものが1つありません:Yubikeyが死んだときの画面の自動ロックが削除されます。
YubicoフォーラムのHowTo( http://forum.yubico.com/viewtopic.php?f=23&t=114 )を14.04のLightDMとYubikey Neoに合わせて少し変更しました。
まず、Yubikeyが存在しないときに画面をロックするコマンドを使用して新しいファイルを作成します。
Sudo nano /usr/local/bin/yubikey
以下をファイルに書き込みます。
#!/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
Yubikey Neoはlsusbの„ Yubico.com“に登録されているため、元のファイルとの最大の違いはdm-tool(lightdmで画面をロックするため)と検索語Yubicoの使用です。
ファイルを閉じて保存します。さらに、ファイルを実行可能にする必要があります。
Sudo chmod +x /usr/local/bin/yubikey
次に、適切な割り当てのためにYubikeyのプロパティを見つける必要があります。
このためには、USB記述子をアクティブにする必要があります。詳細は Yubicoフォーラム で見つけることができます。
コマンドの新しい端末タイプ
udevadm monitor --environment --udev
今、あなたはあなたのyubikeyを(取り外し)プラグし、IDのリストを取得します。探している
ID_VENDOR_ID
ID_MODEL_ID
ID_SERIAL_SHORT
それらはYubikeyの認識のためにudevファイルで使用されます。
ヒント:スティックを再構成するとベンダーIDが変更されます(CCIDなどを使用)
さらに、ファイルを作成します
Sudo nano /etc/udev/rules.d/85-yubikey.rules
そして、次を入力します
# 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"
キーに従ってIDを変更します。注:他のIDを使用して行を貼り付けるだけで、さらにyubikeyを追加できます!
ファイルを閉じて保存します。最後に、udevサービスはルールをリロードする必要があります。
Sudo udevadm control --reload-rules
Sudo service udev reload
pkill -KILL -t
を使用して、すべてのTTYを強制終了することも追加できます。
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
また、それを解決するために、lightdm
からのファイル許可に問題があるようです。
Sudo chown lightdm:root /etc/yubico/[user]-[number]