FedoraでGnuPGを使ったOpenPGPスマートカード¶
注釈
以下の手順では、Nitrokey 3 に少なくともファームウェアバージョン``1.4.0`` がインストールされている必要があります。アップデート方法については`ファームウェアアップデート<./firmware-update.html>`__ を参照してください。
GnuPGスマートカード・サポートには、scdaemon が必要です。Fedoraでは、scdaemon はGnuPGパッケージの一部です。
注釈
scdaemon は``/usr/libexec/scdaemon`` にインストールされる。このパスは通常PATH環境変数の一部ではありません。
GnuPGプロジェクトは、OpenPGPスマートカードとのインターフェイスの2つのセットアップをサポートしています。
GnuPG(CCIDドライバ付きscdaemon)→スマートカード(Nitrokeyなど)
このセットアップでは、scdaemon は、その内部CCIDドライバと*libusb* でNitrokeyと直接通信します。scdaemon は、ログインしているユーザーのパーミッションでユーザー空間で実行されるため、Udevルールを設定する必要があります。
GnuPG (scdaemon with PCSC library) → pcscd → スマートカード (例: Nitrokey)
このセットアップでは、scdaemon が*pcscd* と通信し、それがNitrokeyと通信する。
GnuPGパッケージのコンフィギュレーションでは、CCIDドライバは無効、pcscサポートは必須と設定されているためです。関連する設定は、仕様ファイル` <https://src.fedoraproject.org/rpms/gnupg2/blob/rawhide/f/gnupg2.spec#_140>` __ と` <https://src.fedoraproject.org/rpms/gnupg2/blob/rawhide/f/gnupg2.spec#_51>` __ にあります。
トラブルシューティング¶
最新のFedora 38はインストール後、問題なく動作するはずです。アップグレードされたバージョンのFedoraは、コンフリクトする設定があるかもしれないので、以下のようにチェックする必要がある。Fedora Silverblue は、GnuPG とスマートカードに問題があると報告されています。以下の説明は、Fedora Workstation と*Fedora Server* エディションにのみ適用されます。
gpg --card-status
でNitrokeyの情報を照会することで、セットアップの正しい設定を確認することができます。
認知度チェック¶
lsusb` コマンドで Nitrokey が認識されていることを確認する。例えば、Bus 001 Device 002:ID 20a0:42b2 Clay Logic Nitrokey 3.
システム構成の確認¶
dnf install pcsc-lite``で*pcscd* パッケージがインストールされていることを確認する。さらに、*systemd* サービスとソケットが有効になっていて、``systemctl enable pcscd.socket pcscd.service && systemctl start pcscd.socket
で起動している必要がある。scdaemon は、pcscd に接続するために*libpcsclite* ライブラリを必要とします。pcsc ライブラリへのパスは``echo "pcsc-driver /usr/lib64/libpcsclite.so.1" >> ~/.gnupg/scdaemon.conf`` で明示的に設定できます。また、
ln -s /usr/lib64/libpcsclite.so.1 /usr/lib64/libpcsclite.so
のようにシンボリックリンクで利用することもできます。~/.gnupg/scdaemon.conf
ファイルに競合する設定がないことを確認してください。scdaemon は、デフォルトで、pcscd への排他的なアクセスを期待し、カード上の情報の同時変更の潜在的な問題を回避する。このため、他のクライアント(通常はウェブ・ブラウザ)がカードにアクセスした場合、たとえ読み取りだけであっても、アクセスは失敗する。共有アクセスは``echo "pcsc-shared" >> ~/.gnupg/scdaemon.conf`` (GnuPGバージョン2.2.28以降)で有効にすることができる。