Назад | Перейти на главную страницу

Как заблокировать / разблокировать аппаратный токен gpg с помощью скрипта

Я хотел бы выполнить gpg --card-edit; verify; quit в неинтерактивном режиме, чтобы разблокировать аппаратный токен gpg (например, смарт-карту или юбикей).

Мой вариант использования:

  1. Введите пароль, например через ssh
  2. Сохраните его в связке ключей ядра
  3. При необходимости передайте его в аппаратный токен

Одно из эффективных решений: expect и я использовал autoexpect чтобы создать сценарий для этого, но он будет содержать пароль пользователя и будет довольно неуклюжим и зависит от вывода конкретной версии gpg.

scdaemon может быть вариантом, но я не уверен, стоит ли передавать необработанные команды. Боюсь легко заблокировать токен.

Может быть, есть инструменты / скрипты, которые используются для массовой персонализации смарт-карт?

Я открыт для предложений, что попробовать дальше. Спасибо!

Экспериментируя, я нашел решение, используя gpg-connect-agent 'SCD CHECKPIN' /bye.

Написав специальную программу pinentry, я мог ввести статический ключ, используя протокол Ассуана.

Мне придется изменить эту программу pinentry для чтения ключа из связки ключей ядра, используя keyctl сейчас.