gnupg - 黑盒 : GPG decrypt fails (don't know ctb=00)

标签 gnupg gitlab-ci-runner

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

我正在运行 GitLab CI 部署脚本和 blackbox_postdeploy失败并显示消息 gpg: [don't know] ctb=00 .

我已经能够找到 ctb=00通常与损坏的钥匙串(keychain)有关,但由于我在一个干净的 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。
  • 为我的部署机器人重新创建公钥。
  • 删除 /root/.gnupg -部署前容器上的文件夹。

  • 任何人都可以在这里帮助我吗?这偶尔会破坏我的存储库,对我的开发过程来说是一个巨大的痛苦。

    谢谢你。

    最佳答案

    确保仅在两者都安装时使用 gpg2。

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

    这些问题已在 blackbox HEAD 中得到修复。拉取最新的黑盒版本并使用环境变量调用黑盒命令。
    $ GPG=gpg2 blackbox_deploy
    

    关于gnupg - 黑盒 : GPG decrypt fails (don't know ctb=00),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44247308/

    相关文章:

    shell - GPG修改对称加密密码

    c - 将 GPG 与 C 一起使用?

    docker - Gitlab-runner 安装

    docker - 将 gitlab-runner 从 docker 注册到 gitlab

    sonarqube - 如何将 Sonar 质量门与 Gitlab-CI 集成

    python - 如何在 GnuPG Python 绑定(bind)中设置 GnuPG 主目录?

    configuration - 使用 gpgconf 编辑 gpg 首选项

    bash - 无人值守的 GPG 命令脚本在 GPG 命令处挂起

    ruby-on-rails - Gitlab CI : Is it possible to speed up 'bundle install' ?

    laravel - 无法登录到 Gitlab CI 中的 MSSQL docker 以开始测试迁移