Wie überprüfe ich die heruntergeladene Datei mit der .sig-Datei?


85

Wenn ich GCC herunterlade, hat es auch eine .sigDatei, und ich denke, sie wird bereitgestellt, um die heruntergeladene Datei zu überprüfen. (Ich habe GCC von hier heruntergeladen ).

Aber ich kann nicht herausfinden, wie ich es verwenden soll. Ich habe es versucht gpg, aber es beschwert sich über den öffentlichen Schlüssel.

[root@localhost src]# gpg --verify gcc-4.7.2.tar.gz.sig gcc-4.7.2.tar.gz
gpg: Signature made Thu 20 Sep 2012 07:30:44 PM KST using DSA key ID C3C45C06
gpg: Can't check signature: No public key
[root@localhost src]# 

Wie kann ich die heruntergeladene Datei mit der .sigDatei überprüfen ?

Antworten:


98

Sie müssen den öffentlichen Schlüssel importieren: C3C45C06

Kann in drei Schritten durchgeführt werden.

  1. ID des öffentlichen Schlüssels finden:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Signatur erstellt am 20. září 2012, 12:30:44 MESZ mit DSA-Schlüssel-ID C3C45C06 gpg: Signatur kann nicht überprüft werden: Kein öffentlicher Schlüssel

  2. Importieren Sie den öffentlichen Schlüssel vom Schlüsselserver. Es ist normalerweise nicht erforderlich, einen Schlüsselserver auszuwählen, aber es kann mit durchgeführt werden --keyserver <server>. Keyserver-Beispiele.

    $ gpg --recv-key C3C45C06 gpg: Schlüssel C3C45C06 vom hkp-Server anfordern keys.gnupg.net gpg: Schlüssel C3C45C06: öffentlicher Schlüssel "Jakub Jelinek jakub@redhat.com" importiert gpg: Keine endgültig vertrauenswürdigen Schlüssel gefunden gpg: Gesamtzahl verarbeitet : 1 gpg: importiert: 1

Wenn der Befehlsfehler mit einer Zeitüberschreitung auftritt, befinden Sie sich möglicherweise hinter einer Firewall, die den Standard-GPG-Port blockiert. Versuchen Sie es mit der Option "--keyserver" mit Port 80 (fast alle Firewalls erlauben Port 80 b / c für das Surfen im Internet):

$ gpg --keyserver hkp://${HOSTNAME}:80 --recv-keys ${KEY_ID}
  1. Unterschrift überprüfen:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Unterschrift erstellt am 20. září 2012, 12:30:44 MESZ mit DSA-Schlüssel-ID C3C45C06 gpg: Gute Unterschrift von "Jakub Jelinek jakub@redhat.com" [unbekannt ] gpg: WARNUNG: Dieser Schlüssel ist nicht mit einer vertrauenswürdigen Signatur zertifiziert! gpg: Es gibt keinen Hinweis darauf, dass die Signatur dem Eigentümer gehört. Primärschlüssel-Fingerabdruck: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06

Die Ausgabe sollte "Gute Signatur" sagen.


gpg: WARNUNG: Dieser Schlüssel ist nicht mit einer vertrauenswürdigen Signatur zertifiziert!

Ist für eine andere Frage;)


8
Tolle Schritt-für-Schritt-Erklärung!
Matthew Kraus

4
Für den Fall, dass die zu überprüfende Datei gnupg ist (nicht in Frage), stehen auf der gnupg-Website SHA-1-Prüfsummen zur Verfügung, um den ersten gnupg-Download zu überprüfen.
10 cls

Während der Signaturüberprüfung verarbeitet gpg die Tarball-Datei und die entsprechende .sig-Datei als Einheit. Wenn der Tarball fehlt oder umbenannt wird, bietet gpg die Möglichkeit, den Tarballnamen anzugeben.
Andrew P.

Ich habe einen RSA-Schlüssel und kann nicht ohne oder mit --keyserverdieser Liste arbeiten. Nur einer bekommt ihn, aber er scheint nicht vertrauenswürdig zu sein. Es ist seltsam, da ich ihn anprobiere. Dies GNU coreutilsist ein weit verbreitetes Paket.
Benutzer10089632

Wenn gpg "kein Befehl angegeben, erraten, was Sie meinen" warnt, verwenden Sie gpg --verify gcc-4.7.2.tar.gz.sigstattdessen.
xdavidliu

24

Diese andere Möglichkeit ist besonders nützlich für die Überprüfung von GNU-Projekten (z. B. Octave ), da der von ihrer Signatur angeforderte Schlüssel möglicherweise auf keinem Schlüsselserver gefunden wird.

Von http://ftp.gnu.org/README

Es gibt auch .sig-Dateien, die getrennte GPG-Signaturen der oben genannten Dateien enthalten, die automatisch von demselben Skript signiert werden, das sie generiert.

Sie können die Signaturen für Gnu-Projektdateien mit der Schlüsselbunddatei überprüfen von:

https://ftp.gnu.org/gnu/gnu-keyring.gpg

In einem Verzeichnis mit der Schlüsselbunddatei, der zu überprüfenden Quelldatei und der Signaturdatei lautet der zu verwendende Befehl:

$ gpg --verify --keyring ./gnu-keyring.gpg foo.tar.xz.sig


3
Aber wenn wir über Sicherheit sprechen, ist es besser, eine HTTPS-Verbindung zu verwenden: https://ftp.gnu.org/gnu/gnu-keyring.gpg
Maxim

3
Komisch, ich bin explizit hier, um herauszufinden, wie man Octave validiert! :)
Ron Jensen - Wir sind alle Monica

Vielen Dank. Ich konnte den Schlüssel des Bash-Betreuers auf keinem Schlüsselserver finden, aber dies war das, was ich brauchte, um die Signatur für den Quellcode zu überprüfen.
Anthony Geoghegan

1
Die Oktave finden Sie in der Antwort zur gpg4win-App hier: superuser.com/questions/1268544/…
Martin

1

Sie müssen die öffentlichen Schlüsselserver nach der angegebenen Schlüssel-ID durchsuchen: ID C3C45C06 Importieren Sie in Ihrem Fall den gefundenen Schlüssel in Ihren lokalen Schlüsselspeicher. Danach sollte die Überprüfung in Ordnung sein. Ich benutze Ubuntu 12.04 und es kommt mit Seahorse Key Management Software. Vor dem Schlüsselimport sah ich Folgendes:

~/Downloads$ gpg --verify --keyring ./gnu-keyring.gpg icecat-31.5.0.en-US.linux-x86_64.tar.bz2.sig icecat-31.5.0.en-US.linux-x86_64.tar.bz2
gpg: Signature made  9.03.2015 (пн) 22,35,52 EET using RSA key ID D7E04784
gpg: Can't check signature: public key not found

Nach dem Schlüsselimport sah ich Folgendes:

~/Downloads$ gpg --verify --keyring ./gnu-keyring.gpg icecat-31.5.0.en-US.linux-x86_64.tar.bz2.sig icecat-31.5.0.en-US.linux-x86_64.tar.bz2
gpg: Signature made  9.03.2015 (пн) 22,35,52 EET using RSA key ID D7E04784
gpg: Good signature from "Ruben Rodriguez (GNU IceCat releases key) <ruben@gnu.org>"
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: A573 69A8 BABC 2542 B5A0  368C 3C76 EED7 D7E0 4784

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.