MongoDB GPG - अमान्य हस्ताक्षर


98

मैं एक Ubuntu 14.04 मशीन पर MongoDB स्थापित कर रहा हूं, यहां दिए गए निर्देशों का उपयोग करके: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

तो मैं चला:

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

और तब:

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

के बाद:

sudo apt-get update

मुझे अद्यतन के अंत में निम्नलिखित चेतावनी मिलती है:

डब्ल्यू: GPG त्रुटि: http://repo.mongodb.org भरोसेमंद / मोंगोडब-ऑर्ग / 3.2 रिलीज़: निम्नलिखित हस्ताक्षर अमान्य थे: BADSIG D68FA50FEA312927 MongoDB 3.2 रिलीज़ साइनिंग कुंजी

अगर मैं चेतावनी को अनदेखा करता हूं और चलाने की कोशिश करता हूं:

sudo apt-get install -y mongodb-org

मुझे मिला:

चेतावनी: निम्नलिखित पैकेज प्रमाणित नहीं किए जा सकते हैं!
mongodb- ऑर्ग-शेल mongodb-org- सर्वर mongodb-org-mongos मोंगोडब-ऑर्ग-टूल्स मोंगोडब-ऑर्ग E: ऐसी समस्याएं हैं और -y का उपयोग किए बिना --force-yes

कैसे हल करने पर कोई विचार? धन्यवाद!


5
एक ही त्रुटि, 14.04 एलटीएस
माइक

1
मुसीबत Feb'18 में यहां अब भी है, और काम कर समाधान नीचे है, लेकिन उसे स्वीकार नहीं: stackoverflow.com/a/46737148/2273305 @ आसफ़-hershko, कृपया सर्वश्रेष्ठ उत्तर के अपने चयन को बदलने पर विचार
हूक

Docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu पर आधिकारिक स्थापना दस्तावेज़ के अनुसार कुंजियाँ आयात करना मेरे लिए काम कर गया। 2019-06-10 तक चलने की आज्ञा हैsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
ईबोरब

जवाबों:


286

एक कमांड में उबंटू कुंजी सर्वर से सभी एक्सपायर्ड कुंजियों को अपडेट करें:

sudo apt-key list | \
 grep "expired: " | \
 sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | \
 xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys

कमांड स्पष्टीकरण:

  1. sudo apt-key list - सिस्टम में स्थापित सभी कुंजियों को सूचीबद्ध करता है;
  2. grep "expired: " - समय-सीमा समाप्त कुंजी के साथ केवल लाइनें छोड़ें;
  3. sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' - चाबियाँ निकालता है;
  4. xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys - अपडेट किए गए लोगों को उबंटू कुंजी सर्वर से कुंजी मिली।

स्रोत


2
इसने मिंट पर बहुत अच्छा काम किया। नोट: के लिए तर्क --recv-keyसमाप्त हो गई कुंजी है।
not2qubit

कमाल है, बहुत बहुत धन्यवाद, यह इसी तरह की समस्याओं को हल करता है जो मुझे अन्य अनुप्रयोगों के साथ भी था। मुझे भविष्य में उपयोग के लिए एक फ़ाइल पर इसे सहेजने की आवश्यकता है।
योमि

12
"स्वीकार किए जाते हैं समाधान" से इस साल के बाद किसी को भी देखने के लिए, यह सबसे आसान निर्धारण है।
निकॉली

1
इसका उपाय है! @ assaf-Hishko, कृपया इस एक के लिए स्वीकृत समाधान बदलने पर विचार करें!
हुक

9
यह अब और काम नहीं करता है, क्योंकि प्रारूप apt-key listअब इस उत्तर में आदेशों के अनुरूप नहीं है जो इसे संसाधित करते हैं। इसके बजाय, भागो sudo apt-key list | grep -A 1 expired। 40-हेक्स-अंकीय फिंगरप्रिंट की प्रतिलिपि बनाएँ। अगला, वह कमांड चलाएं sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $FINGERPRINTजहां $FINGERPRINTआपके द्वारा कॉपी किया गया मान है (यदि इसमें रिक्त स्थान हैं, तो इसके चारों ओर उद्धरण रखें)।
लॉरेंस गोंसाल्वेस 17

48

लगता है जैसे आपको MongoDB के लिए इंस्टॉलेशन चरणों को फिर से करना होगा। सबसे पहले, MongoDB के लिए किसी भी मौजूदा रिपॉजिटरी फ़ाइल को हटा दें। नीचे के रूप में करते हैं।

$ sudo rm /etc/apt/sources.list.d/mongodb*.list

अगला, कुंजी जोड़ें: (कुंजी के बिना, भंडार लोड नहीं होगा)।

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

अब, एक नई MongoDB रिपोजिटरी सूची फ़ाइल बनाएं:

$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

भंडार विवरण जोड़ने के बाद, हमें संकुल सूची को अद्यतन करने की आवश्यकता है।

$ sudo apt-get update

अब MongoDB स्थापित करें।

sudo apt install mongodb-org

उम्मीद है की यह मदद करेगा !


धन्यवाद @Tiziano। मुझे खुशी है कि आपको अपना समाधान मिल गया।
PyDevSRS

5
एकमात्र कदम जिसकी आवश्यकता है वह है कुंजी पुन: आयात: sudo apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv EA312927
बेन मैककैन

मेरे लिए भी काम किया। मुझे लगता है कि जैसा कि बेन ने कहा, फिर से आयात कुंजी की कुंजी है।
जेम्स ओ ब्रायन

ई प्राप्त करना: पैकेज मेंगोडब-ऑर्ग का पता लगाने में असमर्थ
मुहम्मद हाफिल

25

आपको मोंगो पैकेज को फिर से स्थापित करने की आवश्यकता नहीं है, लेकिन बस निम्नलिखित के रूप में कुंजी बदलें:

इसकी पुष्टि करने के लिए कुंजियों की सूची तैयार करें:

apt-key list | grep "expired:"

कुंजी बदलें:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xd68fa50fea312927

नंबर 0xd68fa50fea312927 वर्तमान वैध कुंजी आईडी (2019-10-09 पर समाप्त हो रहा है) है, जैसा कि आप यहां देख सकते हैं


1
इसने वास्तव में मेरी मदद की।
अनिल चौधरी

मुझे लगता है कि इस विधि को यहां और अधिक विस्तार से समझाया गया है: futurestud.io/tutorials/… । इसने मेरे लिए काम किया।
लिटिल ब्रेन

9

ऐसा लगता है कि संस्करण ३.१.१ को ११ / जनवरी / २०१६ को जारी किया गया था, और इस क्षण से संकुल हस्ताक्षर खराब है। संकुल हस्ताक्षर एक दिन पहले ठीक थे।

refs: https://jira.mongodb.org/browse/SERVER/fixforversion/15908/?selectedTab=com.atlassian.jira.jira-projects-plugin:nersion-summary-panel

आप या तो --फोर्स-यस ऑप्शन को जोड़ सकते हैं, या कुछ घंटों तक प्रतीक्षा कर सकते हैं जो मोंगोडब टीम देखती है और समस्या को ठीक करती है।

वहां पहले से ही एक टिकट है: https://jira.mongodb.org/browse/SERVER-22144


1
मैंने --force-Yes का उपयोग किया, क्या इस समाधान के साथ कोई जोखिम है?
लैम

1
मार्च 2016, यह अभी तक तय नहीं किया गया है।
रेट्रोग्राफी

8
अभी भी अक्टूबर 2017 में
एटर अज़ानर अल्वारेज़

4
जनवरी 2018, अभी भी है।
कोस्टानोस

3
और अभी भी मार्च 2018 में
वकास मलिक

9

जब मैं Ubuntu 16.04 पर MongoDB 4.0 स्थापित कर रहा था, तब मुझे भी इस समस्या का सामना करना पड़ा। तो मैंने किया।

  1. sudo rm /etc/apt/sources.list.d/mongodb*.list - MongoDB के लिए किसी भी मौजूदा फ़ाइल को हटा दें

  2. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4 - कुंजी जोड़ें

  3. sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list' - एक नई MongoDB रिपोजिटरी सूची फ़ाइल बनाएं

अब, रिपॉजिटरी के अपडेट के साथ इंस्टॉलेशन को पूरा करें फिर MongoDB स्थापित करें, mongodसेवा को सक्षम करें और इसे शुरू करें, और अंतिम, अपने MongoDB संस्करण की जांच करें:

sudo apt update
sudo apt install mongodb-org

systemctl enable mongod.service
systemctl start mongod.service

mongo --version

प्रकट रूप से समस्या केवल चरण # 2 के साथ हल हो जाती है, सार्वजनिक कुंजी को ubuntu कुंजी-स्टोर में आयात करता है। जवाब के लिए धन्यवाद!
आनंद वैद्य

7

नीचे दिए गए आदेशों का उपयोग करते हुए मैंने अपने ubuntu 16.04 पर MongoDB 3.2 को स्थापित करते समय इस मुद्दे का भी सामना किया। नीचे दिए गए समाधान MongoDB की v3.2 स्थापना से संबंधित प्रश्न के रूप में प्रदान किया गया है

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update

उपरोक्त अद्यतन कमांड चलाने के बाद मुझे निम्नलिखित चेतावनी मिली

W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures were invalid: KEYEXPIRED 1507497109
W: The repository 'http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.

सभी कुंजियों को सूचीबद्ध करने के लिए नीचे दिए गए आदेश का उपयोग करते हुए आगे की जांच पर

sudo apt-key list

यह दर्शाता है कि वर्तमान कुंजी 2017-10-08 को समाप्त हो गई है

pub   4096R/EA312927 2015-10-09 [expired: 2017-10-08]
uid                  MongoDB 3.2 Release Signing Key <packaging@mongodb.com>

यह भी समझ में आया क्योंकि MongoDB करंट स्टेबल रिलीज़ अब (3.4.9) है।

समस्या को ठीक करने के लिए सबसे पहले हम एक छोटा सा क्लीनअप (वैकल्पिक) बनाते हैं

  1. हम जोड़े गए पुराने कुंजी को हटा दें

    sudo apt-key list // सभी कुंजियों को सूचीबद्ध करें

    sudo apt-key del EA312927 // डिलीट की जाने वाली कुंजी का यूआईडी ज्ञात करें

    apt- कुंजी सूची | grep Mongodb // सत्यापित करें कि क्या वह हटा दिया गया है

  2. अब हम /etc/apt/source.list.d में जोड़े गए MongoDB रेपो को हटाते हैं

    sudo rm /etc/apt/sources.list.d/mongodb*.list

  3. अब हम नीचे आदेशों का उपयोग करते हुए MongoDB (3.4.9) के नवीनतम स्थिर संस्करण को स्थापित करते हैं

उबंटू पैकेज मैनेजर द्वारा उपयोग की जाने वाली सार्वजनिक कुंजी आयात करें

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

वर्तमान रिपॉजिटरी लाने के लिए mongoDB के लिए एक फ़ाइल सूची बनाएं

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-3.4.list

MongoDB स्थापित करें

sudo apt-get update
sudo apt-get install mongodb-org

3

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

https://docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/

नीचे विवरण जोड़ना

  1. कर्ल -ओ https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.2.0.tgz
  2. tar -zxvf मोंगोडब-लाइनक्स-i686-3.2.0.tgz
  3. mkdir -p mongodb && cp -R -n mongodb-linux-i686-3.2.0 / mongodb
  4. निर्यात पथ = / बिन: $ पथ

  5. तब मोंगॉड चलाएं (डीबी पथ को सेट करने की आवश्यकता हो सकती है)


1
लिंक प्रदान करना अच्छा है, लेकिन यहाँ समाधान की व्याख्या करने का प्रयास करें
नेहल

1
मैं ऐसा कर सकता हूं, लेकिन लिंक अपने आप में काफी विस्तार से बताता है, इसलिए मैंने सोचा कि यह आवश्यक नहीं होगा ..
हैरिसन ह्यूनमिन चो

2

दरअसल, समस्या को हल करने के लिए निम्नलिखित बहुत महत्वपूर्ण है

$ sudo rm /etc/apt/sources.list.d/mongodb*.list

1

मुझे भी यही समस्या थी, इसलिए मैंने किया:

root@skarabi:~# apt remove mongodb-org

फिर:

root@skarabi:~# sudo rm /etc/apt/sources.list.d/mongodb*.list

उपरांत :

root@skarabi:~# apt update


यह सिर्फ आपकी मशीन से MongoDB रिपॉजिटरी को हटा देगा यह नहीं होगा? फिर आप कैसे स्थापित करने जा रहे हैं?
कॉलिन निकोलसन

और फिर इसे स्थापित करें, आप इस लिंक पर देख सकते हैं: docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu यहां तक ​​कि GPG कुंजी भी है। यह मेरे साथ काम करता है
Zineb SKARABI

यह खतरनाक और खराब है। apt removeअपनी मशीन से मानगो (अनइंस्टॉल) करने का कोई कारण नहीं है कि आप नवीनतम कुंजी प्राप्त करें। आप उपयुक्त स्रोतों के लिए एक अद्यतन कुंजी में खींचने की कोशिश करने के लिए अपने पूरे डेटाबेस को नष्ट कर देंगे।
बूमशैडो

1

Dlopatin के उत्तर का उपयोग करते हुए मैं उबंटू 18.04 के लिए आया, क्योंकि उस कोड में अब और काम नहीं होता है:

sudo apt-key list | \
grep -A 1 "\[expired:" | \
sed -ne 's|^\s\{1,10\}\(\w*\)|\1|gp' | \
xargs -d '\n' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
  1. सूची कुंजी sudo apt-key list
  2. एक समय सीमा समाप्त हो और फिंगरप्रिंट के साथ अगली पंक्ति प्रिंट करें grep -A 1 "\[expired:"
  3. केवल स्पेस से शुरू होने वाली लाइनों को निकालने के लिए sed का उपयोग करें ^\s\{1,10\}, और अल्फ़ान्यूमेरिक वर्णों का चयन करें \(\w*\), उन पंक्तियों को चयनित समूह के साथ बदलें जो फिंगरप्रिंट है \1, सभी लौटी लाइनों के लिए दोहराएं g, फिर फिंगरप्रिंट प्रिंट करें p। देता है कि:sed -ne 's|^\s\{1,10\}\(\w*\)|\1|gp'
  4. '\ N' के लिए सीमांकक के साथ xargs का उपयोग करें अन्यथा यह रिक्त स्थान पर टूट जाएगा: xargs -d '\n'तो उन्हें अपडेट करने के लिए फ़िंगरप्रिंट को तर्कों के रूप में पास करें: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keysजो आपको देता है:xargs -d '\n' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys

उम्मीद है कि स्पष्ट है। एप-कुंजी आउटपुट पार्सिंग के बारे में चेतावनी को अनदेखा करें :)


0

मैंने इसी तरह की समस्या का अनुभव किया और Google क्लाउड पर Ubuntu 18.04 उदाहरण पर MongoDB 4.2 को स्थापित करते समय निम्न त्रुटि हुई।

W: GPG error: http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4B7C549A058F8B6B
E: The repository 'http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details

मेरे द्वारा काम किया गया समाधान कुंजी प्राप्त करने के लिए निम्न कमांड चला रहा था। मुझे यह MongoDB आधिकारिक जीरा इश्यू पेजों पर मिला।

/usr/bin/curl -sLO https://www.mongodb.org/static/pgp/server-4.2.asc && sudo /usr/bin/apt-key add server-4.2.asc

मुझे यह समाधान MongoDB आधिकारिक जीरा मुद्दों में मिला। यहाँ इस मुद्दे की कड़ी है।

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