gnupg – Blackbox:GPG解密失败(不知道ctb = 00)

我正在使用
Blackbox来保护我的存储库中的敏感文件,但突然间,莫名其妙地对我来说,它只是停止了工作.

我正在运行GitLab CI部署脚本,而blackbox_postdeploy失败并显示消息gpg:[不知道] ctb = 00.

我已经能够发现ctb = 00通常与损坏的钥匙串有关,但由于我在一个干净的Docker容器(通过GitLab CI)上运行它,我不知道如何解决它.

这是GitLab CI脚本的输出:

$gpg -v --import <(echo "$GPG_PRIVATE_KEY")
gpg: directory `/root/.gnupg' created
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: pub  4096R/ABC1234 2017-04-28  Bot <bot@redacted.com>
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: using PGP trust model
gpg: key ABC1234: public key "Bot <bot@redacted.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
$which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )
/usr/bin/ssh-agent
$eval $(ssh-agent -s)
Agent pid 72
$ssh-add <(echo "$SSH_PRIVATE_KEY")
Identity added: /dev/fd/63 (rsa w/o comment)
$mkdir -p ~/.ssh
$[[ -f /.dockerenv ]] && echo "$SSH_SERVER_HOSTKEYS" > ~/.ssh/known_hosts
$git config --global url."git@gitlab.com:".insteadOf "https://gitlab.com/"
$ln -s /builds /go/src/gitlab.com
$cd /go/src/gitlab.com/me/mysystem
$blackbox_postdeploy
========== Importing keychain: START
gpg: [don't know]: invalid packet (ctb=00)
gpg: key export failed: invalid packet
ERROR: Job failed: exit code 1

我试过的事情:

>手动删除Blackbox文件.
>强制重新初始化存储库中的Blackbox.
>为我的部署机器人重新创建公钥.
>在部署之前删除容器上的/root/.gnupg-folder.

有人可以帮助我吗?这偶尔会打破我的存储库,对我的开发过程来说是一个巨大的痛苦.

谢谢.

最佳答案 确保在安装两者时仅使用gpg2.

$gpg2 -v --import <(echo "$GPG_PRIVATE_KEY")

blackbox HEAD修复了这些问题.拉出最新的blackbox版本并使用环境变量调用blackbox命令.

$GPG=gpg2 blackbox_deploy
点赞