Jak zweryfikować pobrany plik z plikiem .sig?

85

Kiedy pobieram GCC, ma również .sigplik i myślę, że jest dostarczany w celu zweryfikowania pobranego pliku. (Pobrałem GCC stąd ).

Ale nie wiem, jak mam go używać. Próbowałem gpg, ale narzeka na klucz publiczny.

[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]# 

Jak mogę zweryfikować pobrany plik z .sigplikiem?

eonil
źródło

Odpowiedzi:

98

Musisz zaimportować klucz publiczny: C3C45C06

Można to zrobić w trzech krokach.

  1. znajdź identyfikator klucza publicznego:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Podpis wykonany Čt 20. září 2012, 12:30:44 CEST przy użyciu identyfikatora klucza DSA C3C45C06 gpg: Nie można sprawdzić podpisu: Brak klucza publicznego

  2. zaimportuj klucz publiczny z serwera kluczy. Zwykle nie ma potrzeby wybierania serwera kluczy, ale można to zrobić --keyserver <server>. Przykłady serwerów kluczy.

    $ gpg --recv-key C3C45C06 gpg: żądanie klucza C3C45C06 z serwera hkp keys.gnupg.net gpg: klucz C3C45C06: klucz publiczny "Jakub Jelinek [email protected]" zaimportowano gpg: nie znaleziono ostatecznie zaufanych kluczy gpg: Całkowita liczba przetworzonych : 1 gpg: importowane: 1

Jeśli błąd polecenia kończy się z przekroczeniem limitu czasu, możesz znajdować się za zaporą sieciową, która blokuje domyślny port gpg. Spróbuj użyć opcji `--keyserver 'z portem 80 (prawie wszystkie zapory sieciowe pozwalają na port 80 b / c przeglądania sieci):

$ gpg --keyserver hkp://${HOSTNAME}:80 --recv-keys ${KEY_ID}
  1. zweryfikuj podpis:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: Podpis wykonany Čt 20. září 2012, 12:30:44 CEST przy użyciu identyfikatora klucza DSA C3C45C06 gpg: Dobry podpis od „Jakub Jelinek [email protected]” [nieznany ] gpg: OSTRZEŻENIE: Ten klucz nie jest poświadczony zaufanym podpisem! gpg: Nic nie wskazuje na to, że podpis należy do właściciela. Odcisk palca głównego klucza: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06

Wynik powinien zawierać napis „Dobry podpis”.


gpg: OSTRZEŻENIE: Ten klucz nie jest poświadczony zaufanym podpisem!

Jest na inne pytanie;)

OGŁOSZENIE
źródło
8
Świetne wyjaśnienie krok po kroku!
Matthew Kraus
4
W przypadku, gdy plik wymagający weryfikacji to gnupg (nie ma go w pytaniu), sumy kontrolne SHA-1 są dostępne na stronie gnupg do zweryfikowania pierwszego pobrania gnupg.
10 cls
Podczas weryfikacji podpisu gpg przetwarza plik tarball i odpowiadający mu plik .sig jako jednostkę. Jeśli brakuje archiwum lub zmieniono jego nazwę, gpg daje możliwość określenia nazwy archiwum.
Andrew P.
Mam klucz RSA i nie działa bez lub z --keyservertą listą, tylko jeden go dostaje, ale wydaje się, że nie jest zaufany, to dziwne, ponieważ go wypróbowuję GNU coreutils, jest to powszechnie używany pakiet.
user10089632
również, jeśli gpg ostrzega "nie podano polecenia, zgaduję, co masz na myśli", użyj gpg --verify gcc-4.7.2.tar.gz.sigzamiast tego.
xdavidliu
23

Ta inna droga jest szczególnie przydatna do weryfikacji projektów GNU (np. Octave ), ponieważ klucza żądanego przez ich podpis nie można znaleźć na żadnym serwerze kluczy.

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

Istnieją również pliki .sig, które zawierają odłączone sygnatury GPG powyższych plików, automatycznie podpisywane przez ten sam skrypt, który je generuje.

Możesz zweryfikować podpisy dla plików projektu GNU za pomocą pliku kluczy z:

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

W katalogu zawierającym plik kluczy, plik źródłowy do zweryfikowania i plik podpisu , polecenie do użycia to:

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

tay10r
źródło
3
Ale jeśli mówimy o bezpieczeństwie, lepiej użyć połączenia HTTPS: https://ftp.gnu.org/gnu/gnu-keyring.gpg
Maxim
3
Zabawne, jestem tutaj wyraźnie, aby dowiedzieć się, jak zweryfikować Octave! :)
Ron Jensen - Wszyscy jesteśmy Monicą
Dzięki. Nie mogłem znaleźć klucza opiekuna Basha na żadnym serwerze kluczy, ale to było to, czego potrzebowałem, aby zweryfikować podpis jego kodu źródłowego.
Anthony Geoghegan
1
W przypadku oktawy zobacz odpowiedź na temat aplikacji gpg4win tutaj: superuser.com/questions/1268544/…
Martin
1

Musisz przeszukać publiczne serwery kluczy pod kątem podanego identyfikatora klucza: w twoim przypadku ID C3C45C06 zaimportuj znaleziony klucz do lokalnego magazynu kluczy, a następnie weryfikacja powinna być OK. Używam Ubuntu 12.04 i jest wyposażony w oprogramowanie do zarządzania kluczami Seahorse. Przed importem klucza widziałem to:

~/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

Po imporcie klucza widziałem to:

~/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) <[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: A573 69A8 BABC 2542 B5A0  368C 3C76 EED7 D7E0 4784
zloster
źródło
0

zgodnie z tym http://gcc.gnu.org/mirrors.html powinien to być Jakub Jelinek i ważny. nie wiem jednak, skąd wziąłbyś jego klucz publiczny.

user1794469
źródło