İndirilen dosya .sig dosyasıyla nasıl doğrulanır?


85

GCC'yi indirdiğimde, onun da bir .sigdosyası var ve sanırım indirilen dosyayı doğrulamak için sağlandı. (GCC'yi buradan indirdim ).

Ama onu nasıl kullanmam gerektiğini bilemiyorum. Denedim gpgama açık anahtar hakkında şikayet ediyor.

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

İndirilen dosyayı dosya ile nasıl doğrulayabilirim .sig?

Yanıtlar:


98

Genel anahtarı içe aktarmanız gerekiyor: C3C45C06

Üç adımda yapılabilir.

  1. genel anahtar kimliğini bul:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: İmza yapıldı Čt 20. září 2012, 12:30:44 CEST DSA anahtar kimliği kullanılarak C3C45C06 gpg: İmza kontrol edilemiyor: Genel anahtar yok

  2. genel anahtarı anahtar sunucusundan içe aktarın. Genellikle anahtar sunucuyu seçmek gerekmez, ancak ile yapılabilir --keyserver <server>. Anahtar sunucu örnekleri.

    $ gpg --recv-key C3C45C06 gpg: hkp server keys.gnupg.net'ten C3C45C06 anahtarı isteniyor gpg: key C3C45C06: genel anahtar "Jakub Jelinek jakub@redhat.com" içe aktarılan gpg: nihai olarak güvenilen anahtar bulunamadı gpg: İşlenen toplam sayı : 1 gpg: içe aktarılmış: 1

Komut hatası bir zaman aşımıyla sona ererse, varsayılan gpg bağlantı noktasını engelleyen bir güvenlik duvarının arkasında olabilirsiniz. Bağlantı noktası 80 ile `--keyserver 'seçeneğini kullanmayı deneyin (neredeyse tüm güvenlik duvarları web taramasının 80 b / c bağlantı noktasına izin verir):

$ gpg --keyserver hkp://${HOSTNAME}:80 --recv-keys ${KEY_ID}
  1. imzayı doğrula:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: İmza yapıldı Čt 20. září 2012, 12:30:44 CEST DSA anahtar kimliği kullanılarak C3C45C06 gpg: "Jakub Jelinek jakub@redhat.com" dan iyi imza [bilinmiyor ] gpg: UYARI: Bu anahtar güvenilir bir imza ile onaylanmamıştır! gpg: İmzanın sahibine ait olduğuna dair bir gösterge yok. Birincil anahtar parmak izi: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06

Çıktı "İyi imza" yazmalıdır.


gpg: UYARI: Bu anahtar güvenilir bir imza ile onaylanmamıştır!

Başka bir soru içindir;)


8
Harika adım adım açıklama!
Matthew Kraus

4
Doğrulama gerektiren dosyanın gnupg olması durumunda (söz konusu değil), SHA-1 kontrol toplamları, gnupg indirmeden önce olanları doğrulamak için gnupg sitesinde mevcuttur.
10 cls

İmza doğrulama sırasında gpg, tarball dosyasını ve karşılık gelen .sig dosyasını bir birim olarak işler. Tarball eksikse veya yeniden adlandırılmışsa, gpg, tarball adını belirtme fırsatı sağlar.
Andrew P.

Bir RSA anahtarı aldım ve --keyserverbu listeden ya da bu listeden çalışmam , sadece bir tane alıyor ama güvenilir görünmüyor, üzerinde denediğim için GNU coreutilsçok kullanılan bir paket olduğu için garip .
user10089632

ayrıca, gpg "komut sağlanmadı, ne demek istediğinizi tahmin edin" uyarısı veriyorsa, gpg --verify gcc-4.7.2.tar.gz.sigbunun yerine kullanın.
xdavidliu

24

Bu diğer yol, GNU projelerini (örneğin Octave ) doğrulamak için özellikle yararlıdır çünkü imzaları tarafından istenen anahtar herhangi bir anahtar sunucusunda bulunmayabilir.

Http://ftp.gnu.org/README adresinden

Ayrıca, yukarıdaki dosyaların ayrılmış GPG imzalarını içeren ve onları oluşturan aynı komut dosyası tarafından otomatik olarak imzalanan .sig dosyaları da vardır.

Gnu proje dosyalarının imzalarını keyring dosyasıyla şuradan doğrulayabilirsiniz :

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

Anahtarlık dosyası, doğrulanacak kaynak dosya ve imza dosyası içeren bir dizinde kullanılacak komut şudur:

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


3
Ancak güvenlikten bahsediyorsak, HTTPS bağlantısını kullanmak daha iyidir: https://ftp.gnu.org/gnu/gnu-keyring.gpg
Maxim

3
Komik, ben açıkça Octave'i nasıl doğrulayacağımı bulmak için buradayım! :)
Ron Jensen - Hepimiz Monica'yız

Teşekkürler. Bash geliştiricinin anahtarını herhangi bir anahtar sunucusunda bulamadım, ancak kaynak kodu için imzayı doğrulamak için ihtiyacım olan şey buydu.
Anthony Geoghegan

1
Oktav için gpg4win uygulaması hakkındaki cevaba buradan bakın: superuser.com/questions/1268544/…
Martin

1

Verilen anahtar kimliği için genel anahtar sunucularını aramanız gerekir: sizin durumunuzda ID C3C45C06 Bulunan anahtarı yerel anahtar deponuza aktarın ve bundan sonra doğrulama tamam olmalıdır. Ubuntu 12.04 kullanıyorum ve Seahorse anahtar yönetim yazılımı ile birlikte geliyor. Anahtar içe aktarmadan önce şunu görüyordum:

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

Anahtar aktarımından sonra şunu görüyordum:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.