2017-05-29 124 views
4

我使用Blackbox來保護我的倉庫中的敏感文件,但突然間,對我來說,莫名其妙地停止了工作。Blackbox:GPG解密失敗(不知道ctb = 00)

我正在運行GitLab CI部署腳本,並且blackbox_postdeploy失敗,並顯示消息gpg: [don't know] 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 <[email protected]> 
gpg: /root/.gnupg/trustdb.gpg: trustdb created 
gpg: using PGP trust model 
gpg: key ABC1234: public key "Bot <[email protected]>" 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."[email protected]:".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

任何人都可以幫我一起嗎?這偶爾會破壞我的存儲庫,這對我的開發過程是一個巨大的痛苦。

謝謝。

+0

我也被困在這個,最近解決了它。你使用'gpg2'嗎? –

+0

嘿!謝謝回答。是的,我認爲我們正在使用GPG2。 –

+1

太好了。所以我做了幾件事。希望你能夠編輯你的腳本文件。 在編輯'_ {GPG:= gpg}「;'到'$ {GPG:= gpg2}」;'(大約在第26行)的'_blackbox_common.sh'文件中。我還編輯了'function get_pubring_path()''echo「$ {KEYRINGDIR} /pubring.kbx」'。然後,我編輯''函數prepare_keychain()'在以'$ GPG --export ...'開始的行和下面的行,我用'$ GPG --keyring「替換$(get_pubring_path)」--export | $ GPG --import'。 TL:DR。 ['_blackbox_common.sh'](https://gist.github.com/gurpreet-/6e58947136a0e6c6001729143a40a33e) –

回答

1

確保只在安裝兩者時才使用gpg2。

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

這個問題已經在blackbox HEAD中解決了。拉取最新的黑盒版本,並用環境變量調用blackbox命令。

$ GPG=gpg2 blackbox_deploy