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

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

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

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

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

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

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

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

1
задан 8 July 2019 в 09:56
1 ответ

Во время экспериментов я нашел решение, используя gpg-connect-agent 'SCD CHECKPIN' /bye. [11475]]. Написав собственную программу pinentry,Я мог бы ввести статический ключ, используя протокол Ассуана.

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

0
ответ дан 4 December 2019 в 02:51

Теги

Похожие вопросы