我的配置:
- 森托斯 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