Aptly 发布 snaphost 找不到 GPG 密钥(Ubuntu 20.04)

Aptly 发布 snaphost 找不到 GPG 密钥(Ubuntu 20.04)

我正在尝试恰当地发布快照: aptly publish snapshot --architectures all myrelease-0.1

如果我指定 --skip-signing,它就会起作用。但如果我不指定,我就会得到:

Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
gpg: no default secret key: secret key not available
gpg: signing failed: secret key not available
ERROR: unable to publish: unable to detached sign file: exit status 2

我之前运行过:gpg --full-generate-key,并成功完成。

我认为 aptly 正在寻找 ~/.gnupg/secring.gpg,它是空的,因为 gnupg 2.2 将私钥移到了它们自己的目录 (private-keys-v1.d)。但我不确定这一点。

有人成功获得在 Ubuntu 20.04 或 18.04 上签名吗?

答案1

首先,请注意,Aptly 应该明确使用 gpg v1.x:https://www.aptly.info/doc/feature/pgp-providers/

您可以使用生成密钥gpg1,因为您的系统可能会将gpg命令与gpg2可执行文件进行符号链接。


至于密钥丢失......对我来说,我在 Ubuntu 20.04 上遇到了类似的问题:

我最终不得不在发布命令中明确声明与 GPG 相关的所有内容。生成时我没有使用任何“自定义”密钥环,只是使用了 GPG 默认值,但 Aptly 对此不太满意。

示例(用您的值替换值)...

aptly publish snapshot \
 -secret-keyring="secring.gpg" \
 -keyring="pubring.gpg" \
 -passphrase="myPassword" \
 -gpg-key="XYZ123" \
 -batch \
 -architectures="amd64" \
 -distribution=focal \
 foo

一旦它开始工作,您就可以开始精简参数,直到缩小导致问题的范围。在我的例子中,我使用的是 gpgv2 与 v1 混合使用,读取 v2 生成的密钥环时出现问题。在 v1 中重新生成密钥后,一切都按照默认设置运行。

参数参考:

user@host1:~ # aptly publish help snapshot |grep GPG
Valid GPG key is required for publishing.
  -batch: run GPG with detached tty
  -gpg-key="": GPG key ID to use when signing the release
  -keyring=: GPG keyring to use (instead of default)
  -passphrase="": GPG passhprase for the key (warning: could be insecure)
  -passphrase-file="": GPG passhprase-file for the key (warning: could be insecure)
  -secret-keyring="": GPG secret keyring to use (instead of default)
  -skip-signing: don't sign Release files with GPG

相关内容