java - maven 部署期间自动生成 GnuPG key 不会导出 key

标签 java maven gnupg gitlab-ci

我有一个基于 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/

相关文章:

java - IllegalArgumentException - Tomcat 启动

java - Systemd:添加 logback 后无法启动 spring boot

java - 如何使用 maven 将 jar 和所有依赖项打包到新 jar 中

java - 我只想开始开发并花更少的时间处理依赖关系......是否有非 MVN 解决方案?

windows - 每次我提交时都阻止 gpg 询问 key

java - 充气城堡GNUPG解密

Java 包含一个字符的子字符串

java - 传递包含两个整数的对象或不同的方法?

java - 使用 Maven 的 Web 应用程序不会在 Glassfish 中自动创建连接池和 JNDI

c# - 假设 always-trust 在 GPG cmd 中是 yes/true