2017-05-01 4 views
2

Blackbox을 사용하고있는 저장소에서 중요한 파일을 암호화하려고하지만 GitLab CI 파이프 라인이 개인 GPG 키를로드하도록 만들 수 없습니다. 파일을 해독합니다. 주자에 대한 비밀 변수로 저장GitLab CI의 Blackbox에서 GPG 개인 키를로드 할 수 없습니다.

  • 내 개인 키, 볼 수 있습니다 : 분명하다 어디에서

    , 당신은 GitLab CI 주자의 출력을 볼 수 있습니다.

  • 비밀 키는 다시 읽을 수있는 파일에 올바르게 기록됩니다.
  • GPG 키의 형식이 올바르며 완전하고 적절한 키가 들어 있습니다.
  • GPG가 있으며 올바르게 시작할 수 있습니다.

그러나 gpg -v --import /tmp/server.gpg 명령을 실행하면 gpg: no valid OpenPGP data found.이 계속 나타납니다. 이것은 말이되지 않습니다.

나는 이것에서 찾을 수있는 모든 게시물을 따라했지만, 실제로는 적절한 키를 가져 오는 대신 파일 내용을 확인하는 것이거나 실제로 키가 잘못된 것인데, 분명히 그렇지 않습니다.

나는 아무런 진전을 보이지 않아이 문제에 관해 어떤 도움을 주어도 감사하겠습니다.

감사합니다. GitLab CI 러너에서

출력 :

Running with gitlab-ci-multi-runner 9.1.0 (0118d89) on docker-auto-scale (e11ae361) 
Using Docker executor with image golang:1.8.1 ... 
Using docker image sha256:3858bc6d4732445082339c9ccccfe56bf599d1fe7d9e850fb67ceec76807ed8d for predefined container... 
Pulling docker image golang:1.8.1 ... 
Using docker image golang:1.8.1 ID=sha256:6d0bfafa0452c6398be979f89614b5e3cb5d10e853ccd4f5791c4971a88065e0 for build container... 
Running on runner-e11ae361-project-3172553-concurrent-0 via runner-e11ae361-machine-1493644095-36064084-digital-ocean-2gb... 
Cloning repository... 
Cloning into '/builds/project/repo'... 
Checking out 7013b30a as feature/blackbox... 
Skipping Git submodules setup 
$ git clone https://github.com/StackExchange/blackbox 
Cloning into 'blackbox'... 
$ cd blackbox 
$ make manual-install 
Symlinking files from ./bin to /usr/local/bin 
Done. 
$ echo $GPG_PRIVATE_KEY > /tmp/server.gpg 
$ chmod 400 /tmp/server.gpg 
$ cat /tmp/server.gpg 
-----BEGIN PGP PRIVATE KEY BLOCK----- 
Version: GnuPG v2 

[redacted] 
-----END PGP PRIVATE KEY BLOCK----- 
$ gpg -v --list-keys 
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/pubring.gpg' created 
gpg: /root/.gnupg/trustdb.gpg: trustdb created 
gpg: using PGP trust model 
$ gpg -v --import /tmp/server.gpg 
gpg: keyring `/root/.gnupg/secring.gpg' created 
gpg: no valid OpenPGP data found. 
gpg: Total number processed: 0 
ERROR: Job failed: exit code 1 

답변

2

나는 답을 발견했다.

- echo $GPG_PRIVATE_KEY > /tmp/server.gpg 
- gpg -v --import /tmp/server.gpg 

에 :

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

이 문제를 해결 내 .gitlab-ci.yml, 난에서 내 GPG 읽기 구현을 변경했습니다.

+0

여기에 편의를 위해 작동하는 .gitlab-ci.yml https://gist.github.com/mipmip/b25a2a3c0fcc0ea3e542daa502ed753b – mipmip