2012-02-02 9 views
7

公開鍵をインストールせずにgpg署名(cliまたはw/node js)を確認するにはどうすればよいですか?私は公開鍵を持っていますが、鍵リングにそれを追加したくありません。何かヒント?鍵をインストールせずに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 

これはあなたの鍵の信頼性について絶対に何もを伝えていないことに注意してください、それは整合性チェックなどに便利です。

は(私は彼がその1つを得た前にジム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:署名をチェックできません:公開鍵が見つかりません」と言っています。 (私はキーリングにジムマイヤーリングの鍵を持っていません。) –

+0

ハァッ。あなたが正しい。 2年後、私はそれを再現することはできません。私はちょうどすべてを試しました。 'gpg --dry-run --trust-modelダイレクト - キーサーバー - オプション自動キー - 検索--auto-key-locateキーサーバー - キーサーバーkeys.gnupg.net --verify-options pka-lookups --verify coreutils-8.9.tar.gz.sig coreutils-8.9.tar.gz 'しかし、それは' gpg:署名を確認できません:公開鍵が見つかりません 'と言い続けています。あなたが本当にスクリプトを避けたいのであれば、一時的なホーム/キーリングを使用して後で削除するコマンドを書くことができます。しかし、GPGのポイントは信頼を築いているからです。 –

+0

GPGの防衛では、 "--dry-run"が半分実装されていると言います。これは、もちろん、あなたがそのような安全機能で見たいものです。ここでは、ドライランがキーリングにコマンドを追加することを防ぎます。つまり、検証では、使用するキー(明らかに)を知ることができません。私が使ったとき、私はすでにキーが追加されているに違いないので、 "ドライラン"は基本的に何もしなかったと思います。 (ああ、 'verify-options pka-lookups'は追加チェックを追加するだけで、自動ダウンロードはしません...) –

関連する問題