Ошибка аутентификации PAM с помощью смарт-карты OpenPGP через Poldi
Я являюсь счастливым владельцем смарт-карты Nitrokey Pro OpenPGP, которая отлично работает для шифрования и аутентификации SSH. Я бы тоже хотел использовать его для операций sudo/login, но мне пока не повезло в настройке Poldi для PAM-аутентификации.
Пожалуйста, дайте мне знать, что я пропустил, или, как я мог бы продолжить расследование?
Вот что я сделал до сих пор:
- Моя карта содержит 4096-битный ключ шифрования, подписи и аутентификации.
- Я использую GnuPG v2.1.15 на обычном рабочем столе Ubuntu 17.10.
- Полди был установлен через Ubuntu 17.10
libpam-poldi
пакет. - Я связал идентификатор приложения карты с моим системным именем пользователя в
/etc/poldi/localdb/users
, - Я экспортировал свой публичный подраздел аутентификации в файл, названный в честь идентификатора приложения карты в
/etc/poldi/localdb/keys/
, - поскольку
poldi-ctrl
больше не доступен, иgpg-connect-agent "/datafile <app_id>" "SCD READKEY --advanced OPENPGP.3" "/bye"
даст толькоERR 100663414 Invalid ID <SCD>
Я используюgpg --export | openpgp2ssh <auth_subkey_fp> | ssh-conv | sexp-conv --syntax=hex
производить соответствующий формат, т.е.(public-key (rsa-pkcs1-sha1 (n #00e2 ... 7#) (e #010001#)))
, - Я заменил
@include common-auth
сauth sufficient pam_poldi.so
в/etc/pam.d/sudo
,
И вот где я стою:
sudo ls
не удалось, хотя светодиод карты горит (и PIN-код правильный):Insert authentication card for user `syl' Trying authentication as user `syl'... Please enter the PIN Sorry, try again. Insert authentication card for user `syl' Trying authentication as user `syl'... Sorry, try again. Insert authentication card for user `syl' Trying authentication as user `syl'... sudo: 3 incorrect password attempts
/var/log/poldi.log
не дает много подробностей (отредактированный мной серийный номер карты):Poldi 2018-02-02 17:19:53 [23950] debug: using authentication method `localdb' Poldi 2018-02-02 17:19:54 [23950] debug: got scdaemon socket name from gpg-agent, connected to socket '/run/user/1000/gnupg/S.scdaemon' Poldi 2018-02-02 17:19:56 [23950] debug: Waiting for card for user `syl'... Poldi 2018-02-02 17:19:58 [23950] debug: connected to card; serial number is: D...0 Poldi 2018-02-02 17:19:58 [23950] debug: Trying authentication as user `syl'... Poldi 2018-02-02 17:20:06 [23950] error: failed to verify challenge Poldi 2018-02-02 17:20:06 [23950] error: authentication failed: General error Poldi 2018-02-02 17:20:06 [23950] debug: using authentication method `localdb' Poldi 2018-02-02 17:20:06 [23950] debug: got scdaemon socket name from gpg-agent, connected to socket '/run/user/1000/gnupg/S.scdaemon' Poldi 2018-02-02 17:20:06 [23950] debug: Waiting for card for user `syl'... Poldi 2018-02-02 17:20:06 [23950] debug: connected to card; serial number is: D...0 Poldi 2018-02-02 17:20:06 [23950] debug: Trying authentication as user `syl'... Poldi 2018-02-02 17:20:10 [23950] error: failed to verify challenge Poldi 2018-02-02 17:20:10 [23950] error: authentication failed: General error Poldi 2018-02-02 17:20:10 [23950] debug: using authentication method `localdb' Poldi 2018-02-02 17:20:10 [23950] debug: got scdaemon socket name from gpg-agent, connected to socket '/run/user/1000/gnupg/S.scdaemon' Poldi 2018-02-02 17:20:10 [23950] debug: Waiting for card for user `syl'... Poldi 2018-02-02 17:20:10 [23950] debug: connected to card; serial number is: D...0 Poldi 2018-02-02 17:20:10 [23950] debug: Trying authentication as user `syl'... Poldi 2018-02-02 17:20:13 [23950] error: failed to verify challenge Poldi 2018-02-02 17:20:13 [23950] error: authentication failed: General error
Для записи,
/etc/poldi/poldi.conf
гласит следующее:auth-method localdb log-file /var/log/poldi.log debug
Заранее спасибо за помощь, с наилучшими пожеланиями,
--Syl