如何将私钥导入GPG,使其成为默认密钥?


26

我正在尝试通过将GnuPG密钥对导入每台计算机来共享它。这就是我的做法:

gpg --allow-secret-key-import --import secret.gpg.key
gpg --import public.gpg.key

密钥已使用导出-a

完成此操作后,当我执行时,公钥会正确显示gpg --list-keys,但私钥不是(gpg --list-secret-keys)。

我究竟做错了什么?

顺便说一句:我正在使用Puppet进行此操作,因此任何不需要我在(--edit-key和类似内容)中输入内容的解决方案都将受到赞赏。


您能否详细说明gpg --list-secret-keys输出的问题?GPG没有标记将密钥标记为默认密钥的标志。它只是选择该列表中的第一个作为默认值。如果您需要更改此行为,我可以提供答案。
gertvdijk

Answers:


24

要更改GnuPG在签名/加密时选择的密钥的行为,请使用default-key配置参数,并将密钥ID作为值。

因此,例如

$ gpg --list-secret-keys 
/home/gert/.gnupg/secring.gpg
-----------------------------
sec   4096R/13371337 2011-01-01 [expires: 2014-01-01]
uid                  Gert van Dijk (1st key) <name@example.tld>
ssb   4096R/31337313 2011-01-01

sec   4096R/12345678 2013-04-23 [expires: 2014-01-01]
uid                  Gert van Dijk (2nd key) <name@example.tld>
ssb   4096R/87654321 2013-04-23

在中添加一行~/.gnupg/gpg.conf

default-key 12345678

或者,也可以使用长键ID(推荐使用,因为短键ID可能会发生冲突):

$ gpg --list-secret-keys --with-colon
sec::4096:1:ABCDEFAB12345678:2013-01-01:2014-01-01:::Gert van Dijk (2nd key) <user@example.tld>:::

并在中添加一行~/.gnupg/gpg.conf

default-key ABCDEFAB12345678

1
默认情况下,列表的第一个gpg --list-secret-keys用作默认密钥-正确吗?
燕丽
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.