.Sig फ़ाइल के साथ डाउनलोड की गई फ़ाइल को कैसे सत्यापित करें?


85

जब मैं जीसीसी डाउनलोड करता हूं, तो उसमें एक .sigफ़ाइल भी होती है , और मुझे लगता है कि यह डाउनलोड की गई फ़ाइल को सत्यापित करने के लिए प्रदान की गई है। (मैंने यहां से जीसीसी डाउनलोड किया )।

लेकिन मैं यह पता नहीं लगा सकता कि मुझे इसका उपयोग कैसे करना चाहिए। मैंने कोशिश की gpg, लेकिन यह सार्वजनिक कुंजी के बारे में शिकायत करता है।

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

मैं फ़ाइल के साथ डाउनलोड की गई फ़ाइल को कैसे सत्यापित कर सकता हूं .sig?

जवाबों:


98

आपको सार्वजनिक कुंजी आयात करने की आवश्यकता है: C3C45C06

तीन चरणों में किया जा सकता है।

  1. सार्वजनिक कुंजी आईडी ढूंढें:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: हस्ताक्षर gt 20. zá 12í 2012, 12:30:44 CEST DSA कुंजी ID C3C45C06 gpg का उपयोग करते हुए: हस्ताक्षर की जांच कर सकते हैं: कोई सार्वजनिक कुंजी नहीं

  2. कुंजी सर्वर से सार्वजनिक कुंजी आयात करें। आमतौर पर कुंजी सर्वर को चुनने की आवश्यकता नहीं होती है, लेकिन इसके साथ किया जा सकता है --keyserver <server>मुख्य उदाहरण।

    $ gpg --recv-key C3C45C06 gpg: hkp सर्वर से कुंजी C3C45C06 का अनुरोध कर रहा है keys.gnupg.net gpg: key C3C45C06: सार्वजनिक कुंजी "जेकेल जलाइनक jakub@redhat.com" आयातित gpg: कोई अंततः विश्वसनीय कुंजी नहीं मिली gpg: कुल संख्या संसाधित : 1 gpg: आयातित: 1

यदि टाइमआउट के साथ कमांड की त्रुटि है, तो आप फ़ायरवॉल के पीछे हो सकते हैं जो डिफ़ॉल्ट gpg पोर्ट को रोक रहा है। पोर्ट port० के साथ ver --keyserver ’विकल्प का उपयोग करने का प्रयास करें (लगभग सभी फ़ायरवॉल वेब ब्राउज़िंग के पोर्ट `० बी / सी की अनुमति देते हैं):

$ gpg --keyserver hkp://${HOSTNAME}:80 --recv-keys ${KEY_ID}
  1. हस्ताक्षर सत्यापित करें:

    $ gpg gcc-4.7.2.tar.gz.sig gpg: हस्ताक्षर gt 20. zá 12í 2012, 12:30:44 CEST DSA कुंजी ID C3C45C06 gpg का उपयोग करते हुए: "जैकब जलाइनक jakub@redhat.com" पर अच्छा हस्ताक्षर [अज्ञात] ] gpg: चेतावनी: यह कुंजी विश्वसनीय हस्ताक्षर के साथ प्रमाणित नहीं है! gpg: ऐसा कोई संकेत नहीं है कि हस्ताक्षर स्वामी का है। प्राथमिक कुंजी फिंगरप्रिंट: 33C2 35A3 4C46 AA3F FB29 3709 A328 C3A2 C3C4 5C06

आउटपुट को "अच्छा हस्ताक्षर" कहना चाहिए।


gpg: चेतावनी: यह कुंजी विश्वसनीय हस्ताक्षर के साथ प्रमाणित नहीं है!

एक और सवाल के लिए है;)


8
महान चरण-दर-चरण स्पष्टीकरण!
मैथ्यू क्रास

4
इस मामले में कि सत्यापन की आवश्यकता वाली फाइल gnupg है (प्रश्न में नहीं), SHA-1 चेक-सम्स पहले gnupg डाउनलोड को सत्यापित करने के लिए gnupg साइट पर उपलब्ध हैं।
10 cls

हस्ताक्षर सत्यापन के दौरान, gpg टारबॉल फ़ाइल और इसकी संबंधित .sig फ़ाइल को एक इकाई के रूप में संसाधित करता है। यदि टारबॉल गायब है या नाम बदला गया है, तो gpg टारबॉल नाम को निर्दिष्ट करने का अवसर प्रदान करता है।
एंड्रयू पी।

मुझे RSA कुंजी मिली है, और --keyserverउस सूची के बिना या उसके बिना काम नहीं करता है , केवल एक ही इसे प्राप्त करता है, लेकिन यह विश्वसनीय नहीं लगता है, इसकी अजीब बात है क्योंकि मैं उस पर कोशिश कर रहा हूं GNU coreutilsजो एक व्यापक रूप से उपयोग किया जाने वाला पैकेज है।
user10089632

इसके अलावा, अगर gpg ने चेतावनी दी है "कोई भी आदेश दिया गया आपूर्ति, यह अनुमान लगाने का कि आपका क्या मतलब है", gpg --verify gcc-4.7.2.tar.gz.sigइसके बजाय का उपयोग करें ।
xdavidliu

23

यह अन्य एवेन्यू विशेष रूप से जीएनयू परियोजनाओं (जैसे ऑक्टेव ) को सत्यापित करने के लिए उपयोगी है क्योंकि उनके हस्ताक्षर द्वारा अनुरोधित कुंजी किसी भी मुख्य सर्वर में नहीं मिल सकती है।

से http://ftp.gnu.org/README

वहाँ भी हैं .sig फ़ाइलें, जिनमें उपरोक्त फ़ाइलों के अलग GPG हस्ताक्षर होते हैं, स्वचालित रूप से उसी स्क्रिप्ट द्वारा हस्ताक्षरित होते हैं जो उन्हें उत्पन्न करता है।

आप कीरिंग फ़ाइल से ग्नू प्रोजेक्ट फ़ाइलों के लिए हस्ताक्षर सत्यापित कर सकते हैं :

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

एक में कीरिंग फ़ाइल, स्रोत फ़ाइल को सत्यापित करने और हस्ताक्षर फ़ाइल के साथ निर्देशिका , उपयोग करने के लिए आदेश है:

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


3
लेकिन अगर हम सुरक्षा के बारे में बात कर रहे हैं तो HTTPS कनेक्शन का उपयोग करना बेहतर है: https://ftp.gnu.org/gnu/gnu-keyring.gpg
Maxim

3
मजेदार, मैं यहाँ स्पष्ट रूप से बता रहा हूँ कि ऑक्टेव को कैसे मान्य किया जाए! :)
रॉन जेन्सेन - हम सभी

धन्यवाद। मुझे किसी भी मुख्य सर्वर में बैश मेंटेनर की चाबी नहीं मिली, लेकिन इसके स्रोत कोड के लिए मुझे हस्ताक्षर सत्यापित करने की आवश्यकता थी।
एंथोनी जोगेगन

1
ऑक्टेव के लिए यहां gpg4win ऐप के बारे में जवाब देखें: superuser.com/questions/1268544/…
मार्टिन

1

आपको दिए गए कुंजी आईडी के लिए सार्वजनिक keyervers खोजना होगा: आपके मामले ID C3C45C06 में आपके स्थानीय कीस्टोर में मिली हुई कुंजी को आयात करें और इसके बाद सत्यापन ठीक होना चाहिए। मैं Ubuntu 12.04 का उपयोग करता हूं और यह Seahorse कुंजी प्रबंधन सॉफ़्टवेयर के साथ आता है। मुख्य आयात से पहले मैं यह देख रहा था:

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

मुख्य आयात के बाद मैं यह देख रहा था:

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

0

इस के अनुसार http://gcc.gnu.org/mirrors.html जो कि Jakub Jelinek और मान्य होनी चाहिए। मुझे नहीं पता कि आपको उसकी सार्वजनिक कुंजी कहाँ मिलेगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.