我有一个基于 oss pom 的 java 项目托管在 gitlab - JBus 。我想通过 gitlab-ci-runner 设置自动部署到中央 Maven 存储库。
我目前面临的一个问题是 gitlab ci 服务器中自动生成 gpg key 。我按照以下步骤操作
$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
但是上面的东西不会生成任何带有 key 环的 foo.sec
文件。
最佳答案
这似乎是 GnuPG 2 中的一个错误,我预计只能从 GnuPG 2.1 开始(它将 secret key 环移动到公共(public) key 环中)。我添加了bug report描述问题(即 resolved on 2016-12-16 through extended documentation )。
作为解决方法,您可以回退到 GnuPG 1.4,它仍应以 gpg
形式提供(而不是 gpg2
)。至少在 GnuPG 1.4.20 中我能够成功导出 key 。
如果您不需要将 key 导出到单独的文件,只需省略 %pubring
和 %secring
即可将 key 存储在默认的 GnuPG key 环中。当然,您也可以随后使用 gpg --export-secret-keys [keyid]
导出它。
关于java - maven 部署期间自动生成 GnuPG key 不会导出 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37936393/