如何通过脚本锁定/解锁 gpg 硬件令牌

如何通过脚本锁定/解锁 gpg 硬件令牌

我想以gpg --card-edit; verify; quit非交互方式执行来解锁 gpg 硬件令牌(即智能卡或 yubikey)。

我的用例是:

  1. 输入密码,例如通过 ssh
  2. 将其存储在内核密钥环中
  3. 在需要时将其传递给硬件令牌

一个可行的解决方案是expect,我曾经autoexpect为此创建一个脚本,但它包含用户密码,并且相当笨拙,并且依赖于特定 gpg 版本的输出。

scdaemon可能是一种选择,但我不确定传递原始命令是否是个好主意。我担心很容易破坏令牌。

也许有一些可用于智能卡大规模个性化的工具/脚本可以使用?

我愿意听取关于下一步该尝试的建议。谢谢!

答案1

在实验过程中,我找到了一种使用的解决方案gpg-connect-agent 'SCD CHECKPIN' /bye

通过编写自定义 pinentry 程序,我可以使用 Assuan 协议注入静态密钥。

我必须改变这个 pinentry 程序来从内核密钥环中读取密钥keyctl

相关内容