スクリーンロックの自動解除#

(Nitrokey Pro 2 - Linux)

このガイドでは、Nitrokeyを取り外すと自動的にセッションがロックされるように、コンピュータの設定を説明します。

この設定では、2つの異なるディレクトリに2つのファイルを作成する必要があります。

要求事項#

  • Ubuntu 20.04またはDebian 10 (Buster)で、どちらも`Gnome Display Manager <https://wiki.gnome.org/Projects/GDM>`_がインストールされています。

  • Nitrokey Pro 2、Nitrokey Storage 2、またはNitrokey HSM 2

構成#

``.rules``のファイルを作成する。#

お好きなテキストエディターで、``85-nitrokey.rules``というファイルを作成してください。

$ sudo editor /etc/udev/rules.d/85-nitrokey.rules

ファイルに以下の行を追加します。

ACTION=="remove", ENV{PRODUCT}=="20a0/4108/101" RUN+="/usr/local/bin/gnome-screensaver-lock"

ファイルを保存し、エディタを終了します。

このファイルでは、Nitrokeyデバイスの取り外し時に``gnome-screensaver-lock``を実行する新しいハードウェアルールを設定します。

お使いの機器に合わせて、以下のように設定を変更してください。

  • Nitrokeyプロ。ENV{PRODUCT}=="20a0/4108/101"

  • NitrokeyHSM:ENV{PRODUCT}=="20a0/4230/101"

  • Nitrokey Storage``ENV{PRODUCT}=="20a0/4109/101"``

もし別のデバイスを使用していて、ENV{PRODUCT} 文字列を調べる必要がある場合は、以下のコマンドを使用することで、プラグイン時の情報を調べることができます:

$ udevadm monitor --property --udev

``gnome-screensaver-lock``のスクリプトを作成します。#

お好きなテキストエディターで、``gnome-screensaver-lock``というファイルを作成してください。

$ sudo editor /usr/local/bin/gnome-screensaver-lock

以下のテキストを追加します。

user=`ps axo user:30,comm | egrep "gdm-(wayland|x)" | awk '{print $1}'`

if [ -n $user ]; then
        su $user -c "/usr/bin/dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock"
fi

最初のステップでは、このスクリプトはgnomeセッションのユーザ名を探します。すなわち、``user``です。

Nitrokeyの取り外し時に呼び出されると、スクリプトは``user``を問い合わせ、そのセッションに切り替え、スクリーンセーバーの画面を促して画面をロックします。

スクリプトの実行#

設定が完了したら、スクリプトを一度実行すると、画面がロックされます。この最初の実行では、Nitrokeyが接続されているかどうかは関係ありません。

使用方法#

これで、パスワードを入力してセッションにログインし、Nitrokeyを(再)挿入することができました。

次回、Nitrokeyをコンピュータから外すと、自動的に画面がロックされます。