次のコマンドを使用してファイルを復号化しようとしました:
gpg --output file.txt --decrypt file.pgp
ファイルは正常に復号化されますが、エラーが発生します:
「gpg:署名を確認できません:公開キーが見つかりません」
アイデア、なぜこのエラーが発生するのですか?
メッセージに署名した人の公開鍵がないため、このエラーが発生します。
gpg
は、署名に使用されたキーのIDを含むメッセージを提供するはずです。ファイルを暗号化した人から公開鍵を取得し、キーリングにインポートします(gpg2 --import key.asc
)。その後、署名を検証できるはずです。
送信者が公開鍵を鍵サーバーに送信した場合(たとえば、 https://pgp.mit.edu/ )、鍵サーバーから直接鍵をインポートできる場合があります。
gpg2 --keyserver https://pgp.mit.edu/ --search-keys <sender_name_or_address>
Gpgキーリングに公開キーが必要です。公開鍵を公開鍵リングにインポートするには、拡張子が.gpgのテキストファイルに公開鍵ブロックを配置してから、次のコマンドを発行します。
gpg --import <your-file>.gpg
ファイルを暗号化したエンティティは、そのようなブロックを提供する必要があります。たとえば、 ftp://ftp.gnu.org/gnu/gnu-keyring.gpg にはgnu.orgのブロックがあります。
さらに詳細な説明については、「 。sigまたは.ascファイルなしでGPGを使用してファイルを検証しますか? 」を参照してください。
同様の問題があります。これはTomcatデジタル署名です。
$ gpg --verify Apache-Tomcat-9.0.16-windows-x64.Zip.asc Apache-Tomcat-9.0.16-windows-
x64.Zip
gpg: Signature made 2019年02月 5日 0:32:50
gpg: using RSA key A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
gpg: Can't check signature: No public key
しかし、提供されたRSAキーを使用して、公開キーを受け取って確認します。
$ gpg --receive-keys A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
gpg: key 10C01C5A2F6059E7: 38 signatures not checked due to missing keys
gpg: key 10C01C5A2F6059E7: public key "Mark E D Thomas <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
その後、正常に。
$ gpg --verify Apache-Tomcat-9.0.16-windows-x64.Zip.asc
gpg: assuming signed data in 'Apache-Tomcat-9.0.16-windows-x64.Zip'
gpg: Signature made 2019年02月 5日 0:32:50
gpg: using RSA key A9C5DF4D22E99998D9875A5110C01C5A2F6059E7
gpg: Good signature from "Mark E D Thomas <[email protected]>" [unknown]
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: A9C5 DF4D 22E9 9998 D987 5A51 10C0 1C5A 2F60 59E7
私は同じメッセージを受け取りましたが、私のファイルは期待通りに解読されます。出力ファイルfileが表示される場合は、宛先パスを確認してください。