GNUPG2 đột nhiên ném mảng Lỗi skey xây dựng: Không có tệp hoặc thư mục như vậy


1

Một số bối cảnh: Tôi là người duy trì cho một dự án sử dụng gnupg2 là một phần của khung để mã hóa dữ liệu bằng khóa công khai PGP để không thể đọc được nếu máy chủ của chúng tôi bị vi phạm, tập lệnh CI của tôi đã hoạt động tốt cho đến ngày hôm nay khi tôi nhận được thông báo lỗi lạ:

Ioctl không phù hợp cho thiết bị

Tôi đã sửa lỗi này bằng cách thêm dòng sau vào tập lệnh CI của tôi (đã hoạt động)

export GPG_TTY=$(tty)

Tuy nhiên, bây giờ tôi đang gặp phải một vấn đề trong đó nó chỉ ngẫu nhiên đưa ra lỗi:

Lỗi xây dựng mảng skey: Không có tệp hoặc thư mục như vậy

Có ai biết tại sao lỗi này có thể xảy ra hoặc không thể tìm thấy tập tin hoặc thư mục nào không? Tôi thấy trên mạng rằng các thư mục sau có thể bị thiếu hoặc có quyền không hợp lệ nhưng dường như không làm gì cả:

$ mkdir -p ~/.gnupg/private-keys-v1.d
$ chmod 700 ~/.gnupg/private-keys-v1.d

Sau đây là đầu ra của người chạy CI của tôi:

$ export GPG_TTY=$(tty)
$ apt-get update
Get:1 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB]
Get:3 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [440 kB]
Ign:2 http://cdn-fastly.deb.debian.org/debian stretch InRelease
Get:4 http://cdn-fastly.deb.debian.org/debian stretch-updates InRelease [91.0 kB]
Get:5 http://cdn-fastly.deb.debian.org/debian stretch Release [118 kB]
Get:6 http://cdn-fastly.deb.debian.org/debian stretch Release.gpg [2434 B]
Get:7 http://cdn-fastly.deb.debian.org/debian stretch-updates/main amd64 Packages [12.1 kB]
Get:8 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 Packages [9530 kB]
Fetched 10.3 MB in 4s (2169 kB/s)
Reading package lists...
$ apt-get install -y zip gnupg2
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  unzip
The following NEW packages will be installed:
  gnupg2 unzip zip
0 upgraded, 3 newly installed, 0 to remove and 9 not upgraded.
Need to get 703 kB of archives.
After this operation, 1486 kB of additional disk space will be used.
Get:1 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 gnupg2 all 2.1.18-8~deb9u1 [299 kB]
Get:2 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 unzip amd64 6.0-21 [170 kB]
Get:3 http://cdn-fastly.deb.debian.org/debian stretch/main amd64 zip amd64 3.0-11+b1 [234 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 703 kB in 1s (528 kB/s)
Selecting previously unselected package gnupg2.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 29828 files and directories currently installed.)
Preparing to unpack .../gnupg2_2.1.18-8~deb9u1_all.deb ...
Unpacking gnupg2 (2.1.18-8~deb9u1) ...
Selecting previously unselected package unzip.
Preparing to unpack .../unzip_6.0-21_amd64.deb ...
Unpacking unzip (6.0-21) ...
Selecting previously unselected package zip.
Preparing to unpack .../zip_3.0-11+b1_amd64.deb ...
Unpacking zip (3.0-11+b1) ...
Processing triggers for mime-support (3.60) ...
Setting up unzip (6.0-21) ...
Setting up zip (3.0-11+b1) ...
Setting up gnupg2 (2.1.18-8~deb9u1) ...
$ echo "$GPG_PUBLIC_KEY" | gpg --import
gpg: WARNING: unsafe permissions on homedir '/root/.gnupg'
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key REDACTED: public key "REACTED <redacted@redacted >" imported
gpg: Total number processed: 1
gpg:               imported: 1
$ echo "$GPG_PRIVATE_KEY" | gpg --import
gpg: WARNING: unsafe permissions on homedir '/root/.gnupg'
gpg: key REDACTED: "REACTED <redacted@redacted>" not changed
gpg: key REDACTED/REDACTED: error sending to agent: No such file or directory
gpg: error building skey array: No such file or directory
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
ERROR: Job failed: exit code 1

Tôi thiết lập docker của mình như sau:

$ docker pull python:latest
$ docker create python:latest --name python
$ docker run -it python /bin/bash

Sau đây là nơi gần đây nhất tôi đã tìm thấy lỗi này trong năm ngoái:

Câu trả lời:


1

Hóa ra đó là một vấn đề với phiên bản GNUPG2 mới hơn, tôi đã khắc phục sự cố bằng cách thêm --batch gắn cờ gpg --import (dựa trên câu hỏi này )

Dòng mã cố định:

echo "$GPG_PRIVATE_KEY" | gpg --batch --import
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.