Я хотел бы выполнить gpg --card-edit; verify; quit
в неинтерактивном режиме, чтобы разблокировать аппаратный токен gpg (например, смарт-карту или юбикей).
Мой вариант использования:
Одно из эффективных решений: expect
и я использовал autoexpect
чтобы создать сценарий для этого, но он будет содержать пароль пользователя и будет довольно неуклюжим и зависит от вывода конкретной версии gpg.
scdaemon
может быть вариантом, но я не уверен, стоит ли передавать необработанные команды. Боюсь легко заблокировать токен.
Может быть, есть инструменты / скрипты, которые используются для массовой персонализации смарт-карт?
Я открыт для предложений, что попробовать дальше. Спасибо!
Экспериментируя, я нашел решение, используя gpg-connect-agent 'SCD CHECKPIN' /bye
.
Написав специальную программу pinentry, я мог ввести статический ключ, используя протокол Ассуана.
Мне придется изменить эту программу pinentry для чтения ключа из связки ключей ядра, используя keyctl
сейчас.