在 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]
导出它。
我在 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]
导出它。