如何配置 gpg2 传递智能卡 PIN 除非 pinentry 程序?

如何配置 gpg2 传递智能卡 PIN 除非 pinentry 程序?

我的配置:

  • 森托斯 6.5
  • gnugp2-2.0.14-6.el6_4.x86_64
  • gnupg2-smime-2.0.14-6.el6_4.x86_64

我配置gpg2为在智能卡 gnupg V2.0 中使用我的签名密钥。我将 gpg 签名密钥导入到 rpm 存储区。

我需要使用 来签署 rpm 包rpm --addsign myApp.rpm

它工作正常,但rpm提示一次输入智能卡 PIN,并且gpg2(使用pinentry程序)提示三次输入智能卡 PIN。

我希望rpm --addsign将 PIN 码(进入第一个提示)传递给,gpg2并且gpg2不会再次要求输入 PIN 码。

是否有可能只有gpg2提示使用?签署 rpm 包

答案1

为了缓存 pin,您需要运行gpg-agent并且您的卡应该不是设置forcesig位。

AFAIK,默认情况下,卡附带了forcesig位设置,这更安全。您可以使用 来查看gpg --card-edit command并查找条目签名 PIN。根据手册:

签名密码

当设置为“强制”时,gpg 会要求为每个签名操作输入 PIN。当设置为“非强制”时,只要卡未从读卡器中取出,gpg 就可以缓存 PIN。

您可以使用以下方法更改该位:

$ gpg --card-edit
....
gpg: detected reader `MSI StarReader SMART [Smart Card Reader Interface]'
Version ..........: 2.0
Manufacturer .....: ZeitControl
Serial number ....: 0000201C
Name of cardholder: Anthony van der Neut
Language prefs ...: en
Sex ..............: please
URL of public key : http://anthon.home.xs4all.nl/publickey.asc
Login data .......: anthon
Private DO 1 .....: [not set]
Private DO 2 .....: [not set]
Signature PIN ....: forced           <<<<< this is what should not be 'forced'
Key attributes ...: 2048R 2048R 2048R
Max. PIN lengths .: 32 32 32
PIN retry counter : 3 0 3
Signature counter : 2
....
gpg/card > admin
gpg/card > forcesig

(无耻的插件:有关安全设置卡的更多详细信息,请参阅我的咆哮双子座://ruamel.eu/rants/2014/setting_up_an_openpgp_smartcard_with_gnupg.gmi

相关内容