我在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
文件。
答案 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]
导出它。