मैं GPG त्रुटि "NO_PUBKEY" को कैसे ठीक करूं?


364

मैंने सॉफ्टवेयर स्रोत कार्यक्रम के साथ कुछ अतिरिक्त रिपॉजिटरी जोड़े। लेकिन जब मैं पैकेज डेटाबेस को पुनः लोड करता हूं, तो मुझे निम्नलिखित की तरह एक त्रुटि मिलती है:

डब्ल्यू: GPG त्रुटि: http://ppa.launchpad.net भरोसेमंद InRelease: निम्नलिखित हस्ताक्षर सत्यापित नहीं किए जा सकते क्योंकि सार्वजनिक कुंजी उपलब्ध नहीं है: NO_PUBKEY 8BAF9A6F

मुझे पता है कि मैं इसे apt-keyआधिकारिक उबंटू प्रलेखन के अनुसार एक टर्मिनल में उपयोग करके ठीक कर सकता हूं । लेकिन मैं इसे ग्राफिक रूप से करना पसंद करता। क्या टर्मिनल का उपयोग किए बिना ऐसा करने का कोई तरीका है?


सम्बंधित: askubuntu.com/q/127326/178596
Wilf

'एक मतलब'? जिज्ञासु कि तुम क्या मतलब है।
माइकल शेपर

1
आप समाधान के लिए इस SO थ्रेड की जांच कर सकते हैं। संबंधित साइट के
अनिकेत ठाकुर

@MichaelScheper 'वहाँ एक मतलब है [एस] एक टर्मिनल खोलने के लिए नहीं?' = ~ 'क्या बिना टर्मिनल के ऐसा करने का कोई तरीका है?'
विल्फ

@Wilf: ओह! मैं व्याकरण को समझने का मतलब नहीं, लेकिन इसने मुझे भ्रमित किया। संदर्भ से मैंने अभी जाँच की, 'का अर्थ है' एक विलक्षण संज्ञा है, और एक जो आप का मतलब है। dictionary.cambridge.org/dictionary/english/means लेकिन अगर आप और Agmentor अंग्रेजी के कुछ भिन्न प्रकार के रूप जहां विचाराधीन व्याकरण सही है का उपयोग कर रहे है, मैं यह करने के लिए एक संदर्भ को देखने के लिए अच्छा लगेगा, सिर्फ इसलिए कि मैं में दिलचस्पी रखता हूँ इस तरह की चीज। ☺
माइकल Scheper

जवाबों:


211

अब तक इसे संभालने का सबसे सरल तरीका वाई-पीपीए-प्रबंधक (जो अब launchpad-getkeysग्राफिकल इंटरफ़ेस के साथ स्क्रिप्ट को एकीकृत करता है) के साथ है।

  1. इसे स्थापित करने के लिए, पहले इस प्रोग्राम के लिए webupd8 रिपॉजिटरी जोड़ें:

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. अपनी सॉफ़्टवेयर सूची अपडेट करें और Y-PPA-Manager स्थापित करें:

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. Y-ppa-manager चलाएं (जैसे टाइप करें y-ppa-managerफिर एंटर कुंजी दबाएं)।

  4. जब मुख्य y-ppa-manager विंडो दिखाई देती है, तो "उन्नत" पर क्लिक करें।

  5. उन्नत कार्यों की सूची से, "सभी लापता जीपीजी कुंजियों को आयात करने का प्रयास करें" चुनें और ठीक पर क्लिक करें।

    हो गया! जैसा कि चेतावनी संवाद कहता है कि जब आप ऑपरेशन शुरू करते हैं, तो आपके पास कितने पीपीए हैं और आपके कनेक्शन की गति पर निर्भर करते हुए काफी समय लग सकता है (मेरे लिए लगभग 2 मिनट)।


18
वेबसर्वर में वास्तव में उपयोगी नहीं है, क्योंकि यह X11 स्थापित करता है। यदि आप सर्वर संस्करण पर हैं, तो इस विधि का उपयोग न करें, karthick87 का उत्तर जांचें!
गोनकालोटोमास

2
क्या यह उन कुंजियों को सत्यापित करने की अनुमति देता है जो आयात की जाती हैं, या क्या आप बस आँख बंद करके सब कुछ आयात कर रहे हैं (और इसलिए हर किसी पर भरोसा है जिसके पास PPA है)?
पाओलो एबरमन

2
आप अपने सिस्टम में जोड़े गए हर PPA की कुंजी (भरोसेमंद) आयात कर रहे हैं। धारणा यह है कि आप उन पीपीए पर भरोसा करते हैं और उन्हें उपयुक्त तरीके से जोड़ने से पहले उन्हें बाहर की जाँच कर चुके हैं।
मोनोटस्कर

6
यह उत्तर दूर तक आसान है , और वास्तव में इस "चित्रमय" उत्तर की तुलना में कम आदेशों की आवश्यकता है।
jpaugh

1
लेकिन सवाल एक चित्रमय विधि के लिए पूछा गया।
मोनोटस्कर जू

555

टर्मिनल में निम्न आदेश निष्पादित करें

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

<PUBKEY>रिपॉजिटरी के लिए आपकी गायब सार्वजनिक कुंजी कहां है, उदा 8BAF9A6F

फिर अपडेट करें

sudo apt-get update

बाहरी विधि:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

ध्यान दें कि जब आप इस तरह से एक कुंजी आयात करते हैं apt-keyतो आप सिस्टम को बता रहे होते हैं कि आप उस कुंजी पर भरोसा करते हैं जिसे आप साइन इन करने के लिए आयात कर रहे हैं जो आपका सिस्टम उपयोग कर रहा है। ऐसा न करें जब तक आपको यकीन न हो कि कुंजी वास्तव में पैकेज वितरक की कुंजी है।


2
@ नारुतो यह सामान्य है। इसका मतलब है कि सूची सर्वर पर नहीं बदली है।
ζ--

9
आप बस NO_PUBKEYमान पैरामीटर के रूप में पास कर सकते हैं । उदाहरण के लिए GPG त्रुटि [...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3766223989993-70
SMMousavi

23
8BAF9A6F <- आपको वह नंबर कहां से मिला?
ओलिवियर लालोंडे

13
संख्या 8BAF9 ... जिसे आप मूल त्रुटि में देखते हैं। यह कुछ ऐसा होगा जैसे NO_PUBKEY 8BAF ...
एलेक्स

9
अगर कोई मेरे और रिपॉजिटरी के बीच डेटा के साथ छेड़छाड़ करता है, और प्रतिस्थापित किए गए सामान पर हस्ताक्षर करता है, तो यह मेरे साथ सिर्फ वे कुंजी जोड़ देगा जो वे उपयोग करते थे, अधिक या कम नेत्रहीन। तो यह सत्यापित करने की प्रक्रिया क्या है कि कुंजी सही है?
mc0e

43

यह तब होता है जब आपके पास रिपॉजिटरी के लिए उपयुक्त सार्वजनिक कुंजी नहीं होती है।

इस समस्या को हल करने के लिए इस कमांड का उपयोग करें:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

जो ubuntu कुंजी सर्वर से कुंजी को पुनः प्राप्त करता है। और फिर यह:

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

जो उपयुक्त विश्वसनीय कुंजियों की कुंजी जोड़ता है।

समाधान यहाँ और यहाँ और यहाँ पाया जा सकता है


4
यदि hkp: //keyserver.ubuntu.com इस pgpkeys.mit.eduसर्वर का उपयोग नहीं कर रहा है।
राजविरवर्मा

1
इस उत्तर ने काइलिन भंडार के साथ मेरे मुद्दे को हल कर दिया। Sogou पिनयिन इनपुट पद्धति ने मेरे /etc/apt/sources.list.d/फ़ोल्डर में स्रोत जोड़ा , लेकिन जाहिरा तौर पर gpg कुंजी आयात नहीं की। अच्छा उत्तर, सरल और इस बिंदु पर, +1,
सर्जी कोलोडियाज़नी

1
धन्यवाद! मेरे लिए php रिपॉजिटरी मुद्दे को हल करने के लिए काम किया।
आकाश अग्रवाल

1
इस उत्तर ने मेरे अपडेट को हल कियाhttp://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
mvw

और बहुत संभव है, कि आपने पहले अपने सिस्टम के लिए कुंजी उत्पन्न नहीं की है। इसलिए उपर्युक्त चरणों का उपयोग करने से पहले - gpg --gen-key (संदर्भ - पैकेजिंग.बंटु.कॉम
html

35

आपको कुंजी प्राप्त करने और आयात करने की आवश्यकता है।

PPA से कुंजी प्राप्त करने के लिए, PPA के लॉन्चपैड पेज पर जाएँ। लॉन्चपैड के हर पीपीए पेज पर आपको '' इस पीपीए के बारे में तकनीकी जानकारी '' (1:) पर क्लिक करने के बाद यह लिंक (2) मिलेगा।

छवि 1

इसका पालन करें और कुंजी आईडी लिंक पर क्लिक करें (3):

चित्र 2

पृष्ठ सहेजें, यह आपकी कुंजी फ़ाइल है।


अब इसे आयात करने का समय आ गया है:

  • Applications > Software Center,
  • Edit > Software sources...,
  • अपना पासवर्ड डालें,
  • Authenticationटैब पर जाएं और Import Key File...अंत में क्लिक करें
  • सहेजी गई कुंजी फ़ाइल का चयन करें और पर क्लिक करें OK

1
अपना समय न गंवाएं, उत्तर को देखें।
फेलिप

5
@FelipeMicaroniLalli, सवाल यह था कि GUI का उपयोग करके एक पब को कैसे जोड़ा जाए, कि टर्मिनल का, इसलिए यह उत्तर एकदम सही था।
क्रिस वुड्स

यह बहुत आसान और तेज़ है अब इसे y-ppa-manager (एक गुई एप्लिकेशन) के साथ करें। मेरा जवाब नीचे देखें।
मोनोटस्कर

1
ठीक है, लेकिन क्या होगा अगर रिपॉजिटरी एक ubuntu ppa नहीं है। उदाहरण के लिए इंटेल पर वीडियो हार्डवेयर चालकों के लिए अपने स्वयं के भंडार को चलाने download.01.org
mc0e

महान कदम दर कदम गाइड, बहुत बहुत धन्यवाद! वास्तव में कुछ के लिए उपयोगी है जो कुंजी को जोड़ने में विफल रहे apt-key
रॉय लिंग

12

apt केवल 40 चाबियाँ /etc/apt/trusted.gpg.d में संभाल सकता है। 41 कुंजी और आपको जीपीजी त्रुटि "कोई सार्वजनिक कुंजी नहीं मिली" भले ही आप लापता कुंजी (एस) को जोड़ने के सभी चरणों से गुजरते हैं।

यह देखने के लिए जांचें कि क्या इस फ़ाइल में ppa (s) की कोई अप्रयुक्त चाबियां हैं जिनका आप अब उपयोग नहीं करते हैं। यदि सभी उपयोग में हैं, तो /etc/apt/trusted.gpg.d में संबंधित कीफाइल्स के साथ कुछ ppa (s) निकालने पर विचार करें।

इसके अलावा, का उपयोग कर

sudo apt-key adv

एक सुरक्षा जोखिम माना जाता है और इसकी अनुशंसा नहीं की जाती है क्योंकि आप पूरी सुरक्षा अवधारणा को कम कर रहे हैं क्योंकि यह विभिन्न कारणों से चाबियों को प्राप्त करने का एक सुरक्षित तरीका नहीं है (जैसे: एचकेपी एक प्लेनटेक्स्ट प्रोटोकॉल है, छोटा और यहां तक ​​कि लंबी कुंजी जाली हो सकती है ... ) "। http://ubuntuforums.org/showthread.php?t=2195579

मेरा मानना ​​है कि लापता चाबियों को जोड़ने का सही तरीका (उदाहरण के लिए 1ABC2D34EF56GH78) है

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -

1
मुझे यह आसान लगा कि बस
/etc/apt/trusted.gpg.d

@ एमकिड क्या आप किसी दस्तावेज़ / यूआरएल को उद्धृत कर सकते हैं जो इस 41 कुंजी सीमा के बारे में बात करता है?
सेबमा

@SebMa लिंक मेरे उत्तर में पोस्ट किया गया है और डेबियन में एक बग का संदर्भ देता है जो इस सीमा से प्रभावित था। यहाँ लिंक के भीतर वास्तविक पोस्ट के लिए एक एंकर है जो इस का उल्लेख करता है: ubuntuforums.org/showthread.php?t=2195579#post_message_12882784 मुझे यकीन नहीं है कि अगर वास्तविक संख्या इस पर मौजूद है, लेकिन संख्या 40 का उपयोग किया जा सकता है क्योंकि "40" कई अलग-अलग भाषाओं में "बहुत कुछ" का अनुवाद।
mchid

@SebMa हालांकि, सीमा मौजूद है या इस उत्तर के समय मौजूद थी और कुछ समय बाद भी। मैंने व्यक्तिगत रूप से इस 41 कुंजी की सीमा का अनुभव किया है और नई कुंजी जोड़ने के लिए अप्रयुक्त कुंजी को हटाकर इसे ठीक कर दिया है जब इस त्रुटि से बचने के लिए 40 कुंजी पहले से मौजूद थीं।
mchid


9

WebUpd8 PPA में एक छोटी स्क्रिप्ट है, जिसे मैं एक एकल .deb डाउनलोड के रूप में लिंक करूँगा ताकि आपको पूरे PPA को जोड़ना न पड़े - जो स्वतः ही सभी गुम GPG कुंजियों को आयात कर देता है।

लॉन्चपैड-गोकीज़ को डाउनलोड और इंस्टॉल करें (इसके संस्करण में ~ नैट्टी को अनदेखा करें, यह सभी उबंटू संस्करणों के साथ कार्मिक से वनिरिक के लिए काम करता है)। एक बार स्थापित होने पर, एक टर्मिनल खोलें और टाइप करें:

sudo launchpad-getkeys

यदि आप एक प्रॉक्सी के पीछे हैं, तो चीजें थोड़ी अधिक जटिल हैं इसलिए इसे अधिक जानकारी के लिए देखें


1
यह वास्तव में मैं अब जिस तरह से कर रहा हूं, क्योंकि मैंने इस कार्यक्रम को आपकी वेबसाइट पर प्रस्तुत किया है। फिर भी, प्रश्न का उद्देश्य यह जानना था कि इसे चित्रमय तरीके से कैसे किया जाए।
अगमनोर

लॉन्चपैड-गेटकीज़ स्क्रिप्ट अब वाई-पीपीए-प्रबंधक कार्यक्रम में एकीकृत है। launchpad.net/~webupd8team/+archive/y-ppa-manager
मोनोटस्कर

5

मैं Heroku स्थापित करते समय एक ही मुद्दे का सामना करना पड़ा। नीचे दिए गए लिंक से मेरी समस्या हल हो गई -

http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html

NO_PUBKEYसमस्या को हल करने के बाद , नीचे का मुद्दा बना रहा

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>

इसे ठीक करने के लिए मैंने टर्मिनल में निम्नलिखित कमांड निष्पादित की:

sudo -i  
apt-get clean  
cd /var/lib/apt  
mv lists lists.old  
mkdir -p lists/partial  
apt-get clean  
apt-get update  

स्रोत - इसे हल करने के लिए लिंक


4

सुनिश्चित करें कि आपने apt-transport-httpsस्थापित किया है:

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

भंडार जोड़ें:

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

लिनक्स के लिए Skype स्थापित करें:

sudo apt-get update 
sudo apt-get install skypeforlinux -y

स्रोत: https://community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-verified-because-the/td-p/464566


3

अधिक आम तौर पर, निम्न विधि हर भंडार के लिए काम करना चाहिए। निम्नलिखित की तरह देखने वाले कार्यक्रम प्रदाता की वेबसाइट पर एक पाठ के लिए, खोज इंजन की अंतिम मदद से, सबसे पहले:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

इस तरह का एक पाठ http://deb.opera.com पर प्रदर्शित उदाहरण के लिए है । पैसेज को कॉपी करें, इसे एक खाली फाइल में पेस्ट करें जिसे आप अपने डेस्कटॉप पर बनाते हैं। यह कुंजी फ़ाइल में परिणाम है।

फिर कुंजी के आयात के साथ जारी रखें:

  • एप्लीकेशन> सोफवेयर सेंटर
  • संपादित करें> सोफ़वेयर स्रोत ..., पासवर्ड दर्ज करें
  • प्रमाणीकरण टैब पर, 'आयात कुंजी फ़ाइल ...' पर क्लिक करें
  • सहेजी गई कुंजी फ़ाइल का चयन करें और 'ओके' पर क्लिक करें।

अब आप पहले बनाई गई कुंजी फ़ाइल को निकाल सकते हैं।


3

अच्छा! मैं रास्ता मिल गया!

मैंने GPG त्रुटि NO_PUBKEY को ठीक करने के लिए सभी विधि का परीक्षण किया है और मेरे लिए कुछ भी काम नहीं कर रहा है।

मैंने फ़ोल्डर /etc/apt/trusted.gpg.d की संपूर्ण सामग्री हटा दी है

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

और मैं वाई-पीपीए-मैनेजर पद्धति का उपयोग करता हूं क्योंकि मैं सभी प्यूबिक के मैन्युअल रूप से (बहुत सारे) बनाने के लिए बहुत आलसी हूं: http://www.unixmen.com/fix-w-gpg-error-no_pubkey-ubuntu/

भागो sudo apt-get अद्यतन फिर से और अंतिम काम अब महान! टैंक!

आधारित स्रोत: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540 पर # 17 पोस्ट करें


यही एक चीज थी जिसने मेरे लिए भी काम किया। शायद एक भ्रष्ट कुंजीयंत्र कहीं?
donnek

0

मुझे DynDNS के अपडेटर क्लाइंट के साथ भी यही समस्या थी।

पता चलता है कि यह सिर्फ समाप्त हो गई थी चाबियाँ।

सॉफ़्टवेयर को पुनर्स्थापित करना ( .debवेबसाइट से एक नया डाउनलोड करना , फिर सॉफ़्टवेयर सेंटर का उपयोग करके फिर से इंस्टॉल करना) ने समस्या को ठीक किया।

संदर्भ के लिए त्रुटि संदेश:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.