2012-02-02 45 views

Trả lời

6

Đây là tập lệnh trình bao mà tôi chỉ sử dụng cho mục đích đó. Nó tạo ra một khóa tạm thời, cài đặt khóa công khai được chỉ định trong nó, chạy lệnh được chỉ định, sau đó xóa khóa tạm thời.

Lưu ý rằng thao tác này sẽ cài đặt khóa từ máy chủ khóa. Nó không phải là khó khăn để tinh chỉnh nó để sử dụng một chìa khóa bạn đã có trên đĩa (và tôi nên thêm một tùy chọn để làm điều đó).

Cập nhật: Xem https://github.com/Keith-S-Thompson/gpg-tmp

#!/bin/sh 

keyid=$1 
shift 
case "$keyid" in 
    ????????) 
     ;; 
    *) 
     echo "Usage: $0 key args..." 1>&2 
     exit 1 
esac 

tmp_keyring=$HOME/$keyid-keyring.gpg 

gpg --no-default-keyring --keyring $tmp_keyring --recv-keys $keyid 
gpg --no-default-keyring --keyring $tmp_keyring "[email protected]" 
rm -f $tmp_keyring 

Nó hoạt động như lệnh gpg, nhưng có một đối số ban đầu thêm quy định cụ thể 8 chữ số key id.

mẫu sử dụng:

$ gpg coreutils-8.9.tar.gz.sig 
gpg: Signature made Tue 04 Jan 2011 07:04:25 AM PST using RSA key ID 000BEEEE 
gpg: Can't check signature: public key not found 
$ gpg-tmp 000BEEEE coreutils-8.9.tar.gz.sig 
gpg: keyring `/home/kst/000BEEEE-keyring.gpg' created 
gpg: requesting key 000BEEEE from hkp server subkeys.pgp.net 
gpg: key 000BEEEE: public key "Jim Meyering <[email protected]>" imported 
gpg: no ultimately trusted keys found 
gpg: Total number processed: 1 
gpg:    imported: 1 (RSA: 1) 
gpg: Signature made Tue 04 Jan 2011 07:04:25 AM PST using RSA key ID 000BEEEE 
gpg: Good signature from "Jim Meyering <[email protected]>" 
gpg:     aka "Jim Meyering <[email protected]>" 
gpg:     aka "Jim Meyering <[email protected]>" 
gpg: WARNING: This key is not certified with a trusted signature! 
gpg:   There is no indication that the signature belongs to the owner. 
Primary key fingerprint: 155D 3FC5 00C8 3448 6D1E EA67 7FD9 FCCB 000B EEEE 

Hãy ghi nhớ rằng đây sẽ cho bạn biết hoàn toàn không có gì về sự tin cậy của khóa, nhưng nó hữu ích như là một kiểm tra tính toàn vẹn.

(Tôi tự hỏi có bao nhiêu phím Jim Meyering tạo ra trước khi ông có một điều đó.)

2

Tôi không cần nhiều, gpg --dry-run (hoặc gpg -n) làm việc cho tôi. Tôi đã chạy gpg 1.4.12 trên Mac thông qua Homebrew, nhưng nó có vẻ là một lựa chọn tiêu chuẩn. Không có ý tưởng làm thế nào nó so sánh với các phương pháp khác được đề cập ở đây.

+0

Điều đó không hiệu quả đối với tôi (gpg 1.4.16, Linux Mint 17). 'gpg --dry-run coreutils-8.9.tar.gz.sig' cho tôi" 'gpg: Không thể kiểm tra chữ ký: không tìm thấy khóa công khai'". (Tôi không có chìa khóa của Jim Meyering trong vòng khoá của tôi.) –

+0

Huh. Bạn đúng. Hai năm sau, tôi không thể tái tạo nó. Tôi đã thử mọi thứ, ví dụ: 'gpg --dry-run --trust-model direct --keyserver-options tự động khóa-lấy-tự động-key-xác định vị trí keyserver - keyserver keys.gnupg.net --verify-options pka-tra cứu - xác minh coreutils-8.9.tar.gz.sig coreutils-8.9.tar.gz' nhưng vẫn tồn tại khi nói 'gpg: Không thể kiểm tra chữ ký: không tìm thấy khóa công khai'. Vâng, tôi cho rằng nếu bạn thực sự muốn tránh một kịch bản, bạn có thể viết lệnh để thay vào đó sử dụng một nhà/khóa tạm thời và xóa nó sau đó. Nhưng điểm của GPG là xây dựng niềm tin: đó là lý do tại sao họ làm cho điều này trở nên khó khăn. –

+0

Trong phòng thủ của GPG, nó nói "--dry-run" được thực hiện một nửa, tất nhiên là những gì bạn muốn thấy trong một tính năng an toàn như vậy. Ở đây, chạy khô ngăn chặn lệnh thêm vào keyring, điều này có nghĩa là việc xác minh không bao giờ biết khóa nào sẽ được sử dụng (rõ ràng). Khi tôi sử dụng nó, tôi đã có một chìa khóa được thêm vào, do đó, "chạy khô" đã cơ bản không có gì, tôi giả sử. (Oh và 'verify-options pka-lookups' chỉ thêm các kiểm tra bổ sung, nó không tự động tải xuống ...) –

Các vấn đề liên quan