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

时间:2016-06-21 05:41:11

标签: java maven gnupg gitlab-ci

我在gitlab托管了一个基于oss pom的java项目 - JBus。我想通过gitlab-ci-runner设置自动部署到中央maven存储库。

我目前面临的一个问题是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文件。

1 个答案:

答案 0 :(得分:1)

这似乎是GnuPG 2中的一个错误,我预计只会从GnuPG 2.1开始(它将秘密密钥环转移到公共密钥环中)。我添加了bug report来描述问题(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]导出它。