Làm cách nào để xác minh rằng khóa PGP được nhập vào RPM?


13

Người ta có thể nhập khóa với:

vòng / phút - nhập / đường dẫn / đến / phím

Nhưng làm thế nào bạn có thể nói sau nếu bạn đã nhập khóa này? Cố gắng nhập lại nó sẽ thất bại với một lỗi và tôi đang cố tránh điều này vì tôi đang sử dụng Puppet để cài đặt khóa.

Câu trả lời:


10

Bạn có thể kiểm tra lại nếu một khóa đã được nhập bằng cách sử dụng rpm -qi gpg-pubkey-<version>-<release>. Nếu được cài đặt, vòng / phút sẽ cung cấp cho bạn tất cả thông tin về nó, nếu không, nó sẽ chỉ thoát với giá trị trả về là 1, vì vậy bạn có thể thêm vào công thức con rối của mình một unlesstham số:

exec { "rpm --import /path/to/package":
  # ...
  unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}

2
Cách tốt hơn thông qua một số mã tôi tìm thấy:KEYFILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release; KEYID=$(echo $(gpg --throw-keyids < $KEYFILE)|cut -c11-18|tr [A-Z] [a-z]); rpm -q gpg-pubkey-$KEYID
lsd

2
Việc cắt liên kết bạn với một bố cục cụ thể, không hoạt động trên hệ thống kiểm tra RHEL6 của tôi. Và gpg hiện bao gồm các khóa phụ cũng như khóa pub. Vì vậy, tôi đã kết thúc bằng cách sử dụngKEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
dannysauer

5

Mỗi khóa được nhập thêm một mục nhậpdbdb gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. Chỉ cần kiểm tra tên đó ( gpg-pubkey) và phiên bản phù hợp (8 ký tự đầu tiên của dấu vân tay chính ở dạng hex) trong vòng / phút.


rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1 (tham khảo, bao gồm cách lấy FINGERPRINT: robinbowes.com/article.php/20081107174415581 )
Ted Zlatanov

2

Nếu bạn chỉ muốn xác minh rằng khóa đã được nhập (không xử lý thông tin này theo chương trình), bạn có thể liệt kê tất cả các khóa như thế này:

rpm -qi gpg-pubkey-\* | grep -E ^Packager

hoặc cho các id:

rpm -qi gpg-pubkey-\* | grep -E "^Version  "

Điều này có vẻ khá rõ ràng đối với nhiều người nhưng tôi cho rằng đối với một số người, đây là câu trả lời trực tiếp hơn (ít nhất là tiêu đề của) câu hỏi.

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.