问题描述
我试图通过将 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
等)的解决方案都将不胜感激。
最佳思路
要更改 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