Ошибка аутентификации 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

0 ответов

Другие вопросы по тегам