"कोई सार्वजनिक कुंजी उपलब्ध नहीं है" उपयुक्त-अद्यतन पर


133

प्रदर्शन करते समय apt-get update, मुझे निम्न त्रुटि मिलती है:

root@ADS3-Debian6:/home/aluno# apt-get update
Atingido http://sft.if.usp.br squeeze Release.gpg
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-en
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-pt
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-pt_BR

(...)

Obter:10 http://security.debian.org squeeze/updates/non-free i386 Packages [14 B]
Baixados 612 kB em 4s (125 kB/s)                    
Lendo listas de pacotes... Pronto
There is no public key available for the following key IDs: 8B48AD6246925553

2
... और वह तार जो आपने खत्म किया है वह एक महत्वपूर्ण बिट है। यह हमें जो कुंजी से वंचित हो रहे (कीरिंग स्थापित करने संभालने भरोसा मीडिया कि ruda सुझाव मदद नहीं करता है संकुल करते हैं-से) की पहचान करने चाहते हैं
derobert

1
आपको अपनी बिल्ली को कीबोर्ड की तरह चलने नहीं देना चाहिए। :
जी-मैन

जवाबों:


173

अन्य उत्तर काम करेंगे या नहीं, इस पर निर्भर करता है कि कुंजी '8B48AD6246925553' उन पैकेजों में मौजूद है जो वे इंगित करते हैं।

यदि आपको एक कुंजी की आवश्यकता है, तो आपको वह कुंजी प्राप्त करनी होगी, और जहां इसे ढूंढना है, यह एक कुंजी सर्वर में है (बहुत संभवत: कोई भी कुंजी सर्वर करेगा):

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553

इसने मेरे लिए भी काम किया और अन्य उत्तर यहाँ नहीं दिए ..
साई किरण

@starbeamrainbowlabs अब यह है! =)
उस ब्राज़ीलियाई लड़के

@ThatBrazilianGuy: D
starbeamrainbowlabs

4
क्या यह निर्धारित करने का कोई तरीका है कि क्या प्राप्त कुंजी लेगिट है जैसे कि मैं इस तरह के खतरनाक ऑपरेशन कर सकता हूं जैसे कि वैश्विक उपयुक्त-ट्रस्ट को कुछ मनमानी कुंजी जोड़ना? क्या प्राप्त होने के बाद कुंजी की विश्वसनीयता की जांच करने का कोई तरीका है? कुंजी सत्यापन करने के लिए प्रदर्शन करने के लिए कौन से चरण हैं? उदाहरण के लिए, आपके पास एकमात्र चीज ftp-master.debian.org/keys/ziyi_key_2002.asc है, तो आप विश्वास श्रृंखला को तोड़ने के बिना सबसे वर्तमान कुंजी को कैसे प्राप्त करते हैं?
तिनो

1
@ThatBrazilianGuy: यह तथ्य कि यह आपका प्रश्न है, आपको उत्तर देने का अधिकार नहीं देता।
जी-मैन

76

मेरा सुझाव है कि आप नीचे दिए गए चरणों के बजाय @ मारीतोमो के उत्तर का अनुसरण करें:


निम्नलिखित कुंजी आईडी के लिए कोई सार्वजनिक कुंजी उपलब्ध नहीं है, इसके अनुसार इसे ठीक किया जाएगा:

sudo aptitude install debian-archive-keyring

संदर्भ


अंतिम 8 हेक्स अंक इसके साथ साझा किए जाते हैं, इसलिए यह शायद मट्ठे के बारे में शिकायत कर रहा है। ओपी के लिए दुर्भाग्यपूर्ण है कि: 4096R / 46925553 2012-04-27 [समाप्ति: 2020-04-25] यूआईडी डेबियन आर्काइव ऑटोमैटिक साइनिंग की (7.0 / wheezy) <ftpmaster@debad.org>
मार्टिन डोरे

5
क्या debian-keyringवाकई जरूरत है? इसने मेरे साथ काम किया debian-archive-keyring
x-yuri

आश्चर्य नहीं कि अलग-अलग हेक्स संख्या के लिए अलग-अलग समाधान की आवश्यकता हो सकती है। मैंने अपनी Google खोज में संख्या के चारों ओर उद्धरण चिह्न डाल दिए हैं, उस संख्या के लिए एक शब्दशः खोज को बाध्य करने के लिए, और मैं इस पृष्ठ पर उतरा, जिसने मेरी समस्या तय की: reddit.com/r/linux4noobs/comments/4grdo77…… (@ mariotomo's answer) काम भी किया हो सकता है - मैंने कोशिश नहीं की)
माइकल शेपर

debian-keyringहै नहीं की जरूरत है।
एक्स-यूरी

38

मेरा सुझाव है:

$ sudo apt-get install debian-archive-keyring
$ sudo apt-key update

यह अन्य दृष्टिकोणों से बेहतर है क्योंकि यह स्थापित नहीं होता है debian-keyring, जो कि बड़ा है और समय का 99% अनावश्यक है।


1
यह मुझे ज़रूरत थी - मेरे लिए बहुत अच्छा काम किया!
harperville

एक आकर्षण की तरह काम!
विल्बीबी

1
यह मेरे लिए बेहतर समाधान था क्योंकि यह डॉकटर कंटेनर के साथ बेहतर तरीके से फिट बैठता है। हालांकि ध्यान दें कि (कम से कम डॉकटर में) आपको केवल पहले इस पैकेज को स्थापित करना है, फिर एक सेकंड करें apt-get update, फिर उन पैकेजों को स्थापित करें जिन्हें आप वास्तव में चाहते हैं।
मालवीयस

डेबियन 10: चेतावनी: 'उपयुक्त-कुंजी अद्यतन' पदावनत है और अब इसका उपयोग नहीं किया जाना चाहिए! नोट: आपके वितरण में यह आदेश एक नहीं है और इसलिए इसे सुरक्षित रूप से हटाया जा सकता है
aexl

वास्तव में, आपको डेबियन-आर्काइव-कीरिंग स्थापित करने की आवश्यकता हो सकती है, भले ही आप डेबियन-कीरिंग इसके नवीनतम संस्करण पर स्थापित हों
versionngel

17

त्रुटि कोई सार्वजनिक कुंजी निम्नलिखित महत्वपूर्ण आईडी के लिए उपलब्ध नहीं है एक को इंगित करता है गंभीर सुरक्षा समस्या : एक ऑपरेटिंग सिस्टम पैकेज, अपने सार्वजनिक कुंजी के साथ अखंडता के लिए जाँच नहीं की जा सकती है, क्योंकि इसके सार्वजनिक कुंजी याद आ रही है।

यदि संदेश थे:

There is no public key available for the following key IDs: 1397BC53640DB551

आप इस आदेश का उपयोग यह पता लगाने के लिए कर सकते हैं कि कौन से भंडार कुंजी का उपयोग करता है:

for n in `ls /var/lib/apt/lists/*gpg`; do echo "$n" ; gpg --list-packets "$n" | grep 1397BC53640DB551; done

इस उदाहरण में कौन सा क्रोम के लिए Google का भंडार है:

/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release.gpg

यदि आप Google, उसकी सरकार, आदि पर भरोसा करते हैं, तो आपको यह पता लगाना चाहिए कि कुंजी कहाँ है और इसके साथ जोड़ें:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -

मेरे लिए निर्धारित :) धन्यवाद! लेकिन बस जिज्ञासु, क्या गलत था? पहला आदेश क्या करता है, और दूसरा क्या करता है? क्या इससे सभी समस्याओं का समाधान होना चाहिए? मेरा मुद्दा Google Chrome के साथ भी था।
रोहन

और क्या पहला कमांड gpg के साथ कुछ भी बदलता है? यह कहता है कि यह कुछ conf फ़ाइल gpg.conf बनाया है, और मुझे नहीं पता कि मैं चाहता हूँ।
रोहन

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

3

मुझे लिनक्स मिंट (कर्नेल संस्करण 3.13.0-24) में एक ही समस्या का सामना करना पड़ा और मैं इसे कमांड्स का उपयोग करके हल करने में सक्षम था:

gpg --recv-keys <the-reported-key>

gpg --export <the-reported-key> | apt-key add -

ध्यान दिए जाने वाले बिंदु:

1) आदेशों को क्रम 2 में निष्पादित किया गया था) कमांड रूट उपयोगकर्ता के रूप में सामने आए थे

इस जवाब के सौजन्य से ।


1

विकल्प के रूप में:

$ sudo apt-get install debian-keyring debian-archive-keyring
$ sudo apt-key update

6
कृपया अपने उत्तरों में अपने ब्लॉग का विज्ञापन न करें। यही आपके जैव के लिए है।
SLM

1

मेरा उत्तर निम्न बैश स्क्रिप्ट में @mariotomo (जो मैंने अपवोट किया) पर एक मामूली अपग्रेड (IMHO, YMMV) है

  • भी उपयोग करता है gpg
  • अधिक मापदंडों
  • (एक अलग कीज़र का भी उपयोग करता है, हालाँकि इस मामले में मुझे संदेह है कि इससे थोड़ा फ़र्क पड़ता है)

आप eval"ड्राय-रन" के लिए लाइन को भी कमेंट-आउट कर सकते हैं : स्क्रिप्टलेट तब आपको केवल यह दिखाएगा कि वह वास्तव में क्या कर रहा है। बस NO_PUBKEYहर बार जब आप इसका उपयोग करते हैं (आप KEYSERVERचाहें तो बदल सकते हैं ) के मूल्य में परिवर्तन करना सुनिश्चित करें :

NO_PUBKEY='1397BC53640DB551' # CHANGE TO THE VALUE CITED IN YOUR ERROR MESSAGE!
KEYSERVER='keys.gnupg.net'

NO_PUBKEY_LEN="${#NO_PUBKEY}"
echo "NO_PUBKEY_LEN='${NO_PUBKEY_LEN}'"     # for sanity or debugging
# note following works because bash arrays have 0-based indices
NO_PUBKEY_2ND_HALF_START=$(( NO_PUBKEY_LEN/2 ))
echo "NO_PUBKEY_2ND_HALF_START='${NO_PUBKEY_2ND_HALF_START}'" # ditto
NO_PUBKEY_2ND_HALF="${NO_PUBKEY:${NO_PUBKEY_2ND_HALF_START}}"
echo "NO_PUBKEY_2ND_HALF='${NO_PUBKEY_2ND_HALF}'"             # ditto

for CMD in \
  'date' \
  "gpg --keyserver ${KEYSERVER} --recv-keys ${NO_PUBKEY_2ND_HALF}" \
  'date' \
  "gpg -a --export ${NO_PUBKEY_2ND_HALF} | sudo apt-key add -" \
; do
  echo -e "${CMD}"
  eval "${CMD}"
done

0

killall -q gpg-agentअन्य समाधान काम नहीं करते हैं तो चलाएं । यह काम कर सकता है।

मुझे उबंटू 18.04 पर एक पीपीए रिपॉजिटरी के लिए एक समान त्रुटि मिल रही थी और पिछले महीने के लिए इंटरनेट पर विभिन्न समाधानों की कोशिश करने के बाद, मैंने बस जीपीजी-एजेंट पर ठोकर खाई और इसे मार दिया। फिर पीपीए रिपॉजिटरी ने करने के लिए अपडेट करना शुरू कर दिया sudo apt-get update। मुझे पता है कि यह सुरक्षा से समझौता कर सकता है, लेकिन कभी-कभी आपको पीपीए से एक पैकेज की आवश्यकता होती है, और जीपीजी आपको बस जाने नहीं देता है। बाद में, आप gpg-agent को फिर से शुरू करते हैं, और चीजें वापस सामान्य हो जाती हैं।


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