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


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.