使用特定的密钥进行加密和签名


20

我在我的GnuPG密钥环中安装了OpenPGP智能卡密钥(YubiKey NEO)以及本地密钥。

我想使用卡的密钥而不是密钥环中的密钥对文件进行加密和签名。如何指定我要使用的密钥?

如果我的文件系统秘密密钥ID是DEADBEEF且智能卡密钥是DEADBEE5,我该如何用该密钥签名?

Answers:


11

您应指定--default-key

gpg -s --default-key DEADBEE5 input > output

然后检查

gpg -d < output | head -1

gpg man页面(--sign部分):

用于签名的密钥是默认选择的,或者可以使用--local-user和--default-key选项进行设置。


gpg: conflicting commands当我尝试加密和签名时。
Naftuli Kay 2014年

@NaftuliTzviKay对不起,--sign-key用于使用特定密钥对其他密钥进行签名。我更新了答案(这次是事先测试)。
Anthon 2014年

--default-*在命令行上没有任何意义。这些选项用于配置文件。
Hauke Laging

1
--local-user和之间的区别--default-key是,--local-user如果您指定了不存在的密钥,则会产生错误。使用--default-key,它将忽略不存在的密钥,并在密钥环中使用第一个密钥。
wisbucky

15

使用-u/ 选择签名键--local-user

gpg --local-user 0xDEADBEE5 --sign file

可以多次给出此选项,以组合多个密钥的签名:

gpg --local-user 0xDEADBEE5 --local-user 0x12345678 --sign file

根据使用手册页--local-user是一样的使用--default-user在我的答案
安森

1
@Anthon导致相同的结果。这并不意味着--default-*应该推荐这种用法。我已经加入GnuPG邮件列表多年了。我以前从未见过这样的东西。
Hauke Laging 2014年

好耶,它看起来像这个问题上来一次在GnuPG的用户,并且你在哪里谁与提供的答案一个你的手册页;-)的读数。对我来说,-key当我想使用特定键而不是使用-userYMMV 指定内容时,以其名称指定选项感觉更合适。
Anthon 2014年

4
我认为@Anthon --default-key在上面的评论中表示。以此为依据--local-user--default-key根据我的经验,两者之间的区别是,如果没有匹配的键,第一个会失败,而第二个会退回到其他键。出于这个原因,我会非常谨慎地放入--default-key脚本。
杰克·奥康纳

我用gpg 2.2.4测试并确认@ JackO'Connor的评论。--default-key说的人If there is no secret key available for any of the specified values, GnuPG will not emit an error message but continue as if this option wasn't given.
wisbucky
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.