sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 कमांड रिटर्न त्रुटि


30

मैं Ubuntu 12 पर Mongodb को स्थापित करने की कोशिश कर रहा हूं, लेकिन जब मैं यह कमांड चलाता हूं: तो
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
यह नीचे दी गई त्रुटि है:

keyserver.ubuntu.com होस्ट होस्ट नहीं मिला
gpgkeys: HTTP fetch error 7: कनेक्ट नहीं कर सका: ऐसी कोई फ़ाइल या निर्देशिका
gpg नहीं: कोई मान्य ओपनपीजीपी डेटा नहीं मिला
gpg: कुल संख्या प्रक्रियाएँ: 0

Iptables पर मैंने फ़ायरवॉल को बंद कर दिया, लेकिन यह काम नहीं करता है। क्या कोई विचार है?


क्या आपका सिस्टम IP एड्रेस के रूप में keyserver.ubuntu.com को हल कर सकता है? यानी, इसका आउटपुट क्या है dig keyserver.ubuntu.com?
Xyon

जवाबों:


35

यह वास्तव में कुंजी को देखने वाले के साथ एक समस्या नहीं हो सकती है, जो कि त्रुटि का सुझाव देती है। Apt-key कमांड को gpg कहते हैं, जो बदले में कीज़र को एक्सेस करने की कोशिश करता है। जाहिरा तौर पर वहाँ gpg में एक बग है जिसमें अगर चाबी का छल्ला आपके द्वारा अनुरोधित कुंजी नहीं है, तो gpg गलत व्याख्या करता है कि "मेजबान नहीं मिला"।

यह अच्छी तरह से हो सकता है कि एक गैर-प्रतिक्रियाशील कीसर्वर एक ही काम करेगा, और मैंने ऐसे वातावरण देखे हैं जहां कीसर्वर्स अवरुद्ध हैं (कॉर्पोरेट फ़ायरवॉल नियम), ताकि आपके मूल कारण हो सकते हैं यदि कोई अपस्ट्रीम फ़ायरवॉल है जिसे आप एक्सेस नहीं करते हैं सेवा मेरे।

बस संदर्भ के लिए, कुंजी है और वर्तमान में मेरे लिए जवाब देने वाला कीसर है:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.rh1myoBdSE --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <richard@10gen.com>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

यह हो सकता है कि बंदरगाह मुद्दा है (यह पिछली बार जब मैंने कॉर्पोरेट फ़ायरवॉल समस्या को मारा था), इसलिए मानक HTTP पोर्ट (80) पर ऐसा करने की कोशिश करें, देखें कि क्या चीजें बाहर हैं:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

4
"मानक HTTP पोर्ट (80) के बजाय ऐसा करना" अच्छा मुश्किल है! tks
Bill.Zhuang

1
चेतावनी: एसएसएल के बिना, आप संभावित रूप से एक मीतम हमले से प्रभावित हो सकते हैं जो आपको एक कुंजी प्रदान करता है जिसके फिंगरप्रिंट में समान अंतिम आठ वर्ण ( उदाहरण के लिए हमला करना ) है। इस तरह की कुंजी सार्वजनिक रूप से साझा नहीं की जा सकती है, इसलिए आपको कभी नहीं पता चलेगा कि आपको रोका गया था। सार्वजनिक रूप से साझा की गई कुंजियों के ऐसे हमले को रोकने के लिए, डेबियन की कीवर ने एक नीति बनाई है, जिसमें कहा गया है कि "डेबियन कुंजी में केवल कुंजी ... इस सर्वर द्वारा वापस कर दी जाएगी"
एडम काट्ज

21

मुझे उसी समस्या का सामना करना पड़ा क्योंकि मेरी मशीन एक कॉर्पोरेट प्रॉक्सी के पीछे है। बनी gpg --keyserver-option http-proxyबनाई चाल। जैसा दिखता है:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10

1
धन्यवाद! अच्छा है कि मैंने शीर्ष पर पढ़ना बंद नहीं किया ...
मोरारू लिलियन

20

यदि आप किसी प्रॉक्सी का उपयोग कर रहे हैं, उदाहरण के लिए कंपनी का प्रॉक्सी तो शायद इसका एक ही तरीका है कि आप इसे मैन्युअल रूप से दर्ज करें, जो कि बहुत आगे है। चलाएँ:

sudo apt-get update

और pub_key की आईडी प्राप्त करें। फिर http://keyserver.ubuntu.com/ पर जाएं और कुंजी को हेक्सिडेसिमल के रूप में खोजें, उदाहरण के लिए यदि कुंजी है 7936A783B, तो खोजें 0x7936A783B। पिल्ला लिंक पर क्लिक करें और कुंजी सामग्री को कॉपी करें और इसे एक txt फ़ाइल में सहेजें। टर्मिनल पर जाएँ और फ़ाइल पर जाएँ और चलाएँ:

sudo apt-key add key.txt

यदि यह काम करता है, तो आपको एक सरल OKप्रतिक्रिया मिलेगी । जब सभी कुंजियाँ जोड़ी जाती हैं, तो आप चला सकते हैं:

sudo apt-get update

आखिर तुमने इसे हासिल कर ही लिया है!


3
यह साफ-सुथरा है; यह भी संभव है कि आप URL का उपयोग इस apt-keyप्रकार करें:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
sxc731

2
@ sxc731 - apt-keyमैन पेज कहता है: "ध्यान दें कि कोई भी चेक नहीं किया गया है, इसलिए बिना उपयोग किए अगर यह पूरी तरह से apt- Secure (8) इंफ्रास्ट्रक्चर को कम करने में आसान है।" इसका मतलब है कि आप वास्तव में ऐसा नहीं करना चाहते हैं। एसएसएल। उसे बदलें --fetch-keys https://…और आप यथोचित सुरक्षित रहें।
एडम काटज़

@AdamKatz बहुत अच्छी बात, धन्यवाद। दुर्भाग्य से मैं आपके सुझाव को लागू करने के लिए अपनी टिप्पणी को संपादित नहीं कर सकता, लेकिन फिर भी
अपरोक्ष

--fetch-keysविकल्प त्रुटि के साथ मेरे लिए विफल रहा है: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol https 'GPG समर्थित नहीं: keyserver योजना के लिए कोई हैंडलरhttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin

धन्यवाद, वास्तव में मैं क्या देख रहा था।
मिगुएल ऑर्टिज़

1

इस कड़ी में वर्णित दूसरे दृष्टिकोण ने मेरे लिए काम किया। मैन्युअल रूप से कुंजी डाउनलोड करें और इसे जोड़ें। लिंक गुम कुंजी के कारण हो रही त्रुटि को ठीक करने के लिए चरण प्रक्रिया द्वारा चरण प्रदान करता है।

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