在 Maven 部署期间自动生成 GnuPG 密钥不会导出密钥

Automated GnuPG key generation during maven deployment does not export secret key

我在 gitlab 中托管了一个基于 oss pom 的 java 项目 - JBus。我想通过 gitlab-ci-runner.

设置自动部署到中央 Maven 存储库

我目前遇到的一个问题cing 是在 gitlab ci 服务器中自动生成 gpg 密钥。我按照以下步骤

$cat >foo <<EOF
     %echo Generating a basic OpenPGP key
     Key-Type: DSA
     Key-Length: 1024
     Subkey-Type: ELG-E
     Subkey-Length: 1024
     Name-Real: Anindya Chatterjee
     Name-Comment: with stupid passphrase
     Name-Email: anidotnet- at -gmail.com
     Expire-Date: 0
     Passphrase: abc
     %pubring foo.pub
     %secring foo.sec
     # Do a commit here, so that we can later print "done" :-)
     %commit
     %echo done
EOF

$gpg2 --verbose --batch --gen-key foo

但是上面的东西不会生成任何带有密钥环的foo.sec文件。

这似乎是 GnuPG 2 中的一个错误,我希望仅从 GnuPG 2.1 开始(它将秘密密钥环移动到 public 密钥环中)。我加了一个bug report describing the issue (which was resolved on 2016-12-16 through extended documentation).

作为一种解决方法,您可以退回到 GnuPG 1.4,它应该仍然可用 gpg(而不是 gpg2)。至少对于 GnuPG 1.4.20,我能够成功导出密钥。

如果您不需要将密钥导出到单独的文件,只需省略 %pubring%secring 即可将密钥存储在默认的 GnuPG 密钥环中。您当然也可以在之后使用 gpg --export-secret-keys [keyid] 导出它。