2012-02-02 3 views
7

공개 키를 설치하지 않고 gpg 서명 (cli 또는 노드 j)을 어떻게 확인합니까? 나는 공개 키를 가지고 있지만 키 링에 추가하고 싶지 않습니다. 어떤 힌트?키를 설치하지 않고 gpg 서명 확인

감사합니다, 플로리안

답변

6

여기 난 그냥 그 목적을 위해 사용하는 쉘 스크립트입니다. 임시 키링을 작성하고 지정된 공개 키를 설치하고 지정된 명령을 실행 한 다음 임시 키링을 삭제합니다.

키 서버에서 키를 설치한다는 점에 유의하십시오. 이미 디스크에있는 키를 사용하기 위해 그것을 조정하는 것은 어렵지 않아야합니다. (그리고 나는 단지 그것을하기위한 옵션을 추가해야합니다).

업데이트 : 그것은 gpg 명령 같은 역할을하지만, 8 자리 키 ID를 지정하는 별도의 초기 인자를 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 

참조하십시오.

샘플 사용 :이 당신 키의 신뢰성에 대한 절대적으로 아무것도를 알 수 없다는 것을

$ 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 

은 명심하지만 무결성 검사로 유용합니다.

는 (나는 그가 그 일을 도착하기 전에 짐 Meyering 생성 얼마나 많은 키 궁금합니다.)

2

내가 많이 gpg --dry-run (또는 gpg -n이) 나를 위해 일 필요가 없었다. Homebrew를 통해 Mac에서 gpg 1.4.12를 실행하고 있었지만 표준 옵션 인 것 같습니다. 여기에 언급 된 다른 방법과 비교하면 어떤 생각이 들지 않습니다.

+0

나를 위해 작동하지 않습니다 (gpg 1.4.16, Linux Mint 17). 'gpg --dry-run coreutils-8.9.tar.gz.sig'는 나에게 "gpg : 서명을 검사 할 수 없습니다 : 공개 키를 찾을 수 없습니다."라고합니다. (열쇠 고리에 Jim Meyering의 열쇠가 없습니다.) –

+0

허. 네가 옳아. 2 년 후, 나는 그것을 재현 할 수 없다. 나는 거의 모든 것을 시도했다. 'gpg --dry-run --trust-model direct --keyserver-options 자동 키 - 검색 --auto-key-locate keyserver --keyserver keys.gnupg.net --verify-options pka-lookups --verify coreutils-8.9.tar.gz.sig coreutils-8.9.tar.gz '하지만'gpg : 서명을 검사 할 수 없습니다 : 공개 키를 찾을 수 없습니다'라고 말합니다. 글쎄, 정말로 스크립트를 피하고 싶다면 명령을 써서 대신 임시 home/keyring을 사용하고 삭제할 수 있습니다. 그러나 GPG의 요점은 신뢰를 구축하는 것입니다. 그것이 바로이 점을 어렵게 만드는 이유입니다. –

+0

GPG의 방어면에서, "--dry-run"은 절반 정도 구현되었지만 물론 안전 기능에서보고 싶은 내용입니다. 여기서 드라이 런 (dry-run)은 커맨드가 키링에 추가되는 것을 막습니다. 즉, 검증은 어떤 키를 사용할지를 결코 알지 못합니다 (분명히). 내가 그것을 사용할 때, 나는 이미 키가 추가되었을 것입니다, 그래서 "마른 실행"은 근본적으로 아무 것도하지 않았습니다. (오,'verify-options pka-lookups'는 추가 검사를 추가하기 만하면 자동으로 다운로드하지 않습니다 ...) –