उपयुक्त कुंजियों के लिए अवरुद्ध आउटबाउंड hkp पोर्ट के आसपास कैसे काम करें


35

मैं उबंटू 9.10 का उपयोग कर रहा हूं, और कुछ उपयुक्त रिपोजिटरी जोड़ने की आवश्यकता है। दुर्भाग्य से, मुझे इस तरह के संदेश मिलते हैं sudo apt-get update:

W: GPG error: http://ppa.launchpad.net karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A9BF3BB4E5E17B5
W: GPG error: http://ppa.launchpad.net karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1DABDBB4CEC06767

इसलिए, मुझे इन रिपॉजिटरी के लिए चाबियाँ स्थापित करने की आवश्यकता है। 9.10 के तहत अब हमारे पास ऐसा करने का विकल्प है:

sudo add-apt-repository ppa:nvidia-vdpau/ppa

देखें इस उबंटू सहायता लेख जानकारी के लिए।

यह बहुत अच्छा है, सिवाय इसके कि मैं इसे एक फ़ायरवॉल के पीछे एक वर्कस्टेशन पर चला रहा हूं, जो विंडोज़ और IE चलाने वाले सचिवों के लिए आवश्यक सभी पोर्ट को आउटबाउंड कनेक्शन ब्लॉक करता है।

यहाँ प्रश्न में बंदरगाह hkp सेवा है, बंदरगाह 11371।

वहाँ कुंजी को मैन्युअल रूप से डाउनलोड करने और apt के कीरिंग पर स्थापित करने के तरीके प्रतीत होते हैं। यहां तक ​​कि ऐड-ऑप्‍ट-रिपॉजिटरी या वेज या कुछ का उपयोग करने का एक तरीका हो सकता है कि वैकल्पिक सर्वर से कुंजी डाउनलोड करने के लिए इसे पोर्ट 80 पर उपलब्‍ध कराया जाए।

हालाँकि, मुझे अभी तक ऐसा करने के लिए चरणों का एक संक्षिप्त सेट नहीं मिला है। मैं क्या देख रहा हूँ:

  1. एक उपयुक्त पैकेज के लिए सार्वजनिक कुंजी कैसे खोजें (इन संसाधनों के लिए सिफारिशें, और / या खोज के लिए युक्तियां। कुंजी हैश के लिए खोज करना अब तक प्रभावी नहीं लगता है।)
  2. किसी कुंजी को कैसे पुनः प्राप्त करें (क्या इसे gpg या add-apt-repository का उपयोग करके स्वचालित रूप से किया जा सकता है?)
  3. Apt की कीरिंग की कुंजी कैसे जोड़े

अग्रिम में धन्यवाद।

जवाबों:


38

यह उबंटू के आगामी नेट्टी संस्करण में तय किया गया है: https://launchpad.net/ubuntu/natty/+ource/software-properties/0.78.1

पुराने संस्करण का उपयोग करने वालों को ppa.py संपादित करने की आवश्यकता है:

sudo gedit /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py

यह कहां कहा गया है:

keyserver.ubuntu.com

में बदलो:

hkp://keyserver.ubuntu.com:80

सहेजें, बाहर निकलें, तो आप जाने के लिए अच्छे हैं।


1
बहुत बढ़िया - मेरी समस्या हल हो गई!
फेडरन

14
10.10 पर, इस स्रोत फ़ाइल को संपादित करने के बजाय मैं बस कॉल कर सकता हूंsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys KEY_HASH
l0b0

hkp://keyserver.ubuntu.com:8010.04 पर भी काम करता है।
bd808

1
+1 उपयोग के लिए--keyserver hkp://keyserver.ubuntu.com:80
rogeriolino

19
sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://proxy:port --recv-keys KEYID

13

यहाँ एक वर्कअराउंड मैंने उपयोग किया है:

मैंने हमारे कॉर्पोरेट फ़ायरवॉल से परे मुक्त दुनिया में एक लिनक्स सर्वर पर लॉग इन किया, और यह किया:

gpg --keyserver keyserver.ubuntu.com --recv 1DABDBB4CEC06767 && gpg --export --armor 1DABDBB4CEC06767

फिर अपने कार्य केंद्र पर, मैंने इसे चलाया, और स्टड में उपरोक्त कमांड (सार्वजनिक कुंजी) से आउटपुट चिपकाया, जिसके बाद नियंत्रण-डी:

sudo apt-key add -

तब मैं sudo apt-get updateसमस्याओं के बिना भाग सकता था ।

मुझे अभी भी लगता है कि एक बेहतर तरीका होना चाहिए, आदर्श रूप से मैं स्क्रिप्ट लिख सकता हूं।


"मैं मुक्त दुनिया में एक लिनक्स सर्वर पर लॉग इन किया था" यह बहुत संभावना नहीं है कि कोई ऐसा करने में सक्षम है, यहां तक ​​कि एचकेपी भी अवरुद्ध है।
gertvdijk

^ शायद यह मानते हुए कि आप दमनकारी शासन में रह रहे हैं और कुछ आईटी विभाग नहीं हैं। जब भी मैं वीपीएन पर होता हूं तो मैं एसएसएच कर सकता हूं, लेकिन कोई डीएनएस पैकेट नहीं है (और जाहिर तौर पर एचकेपी नहीं है।) यह वही है जो मुझे चाहिए था।
किंगडॉन

8

मेरे पास यहां एक और वर्कअराउंड है जो आपके नेटवर्क के बाहर एक अन्य लिनक्स सर्वर को प्रॉक्सी के रूप में नहीं मिल सकता है, तो यह आसान हो सकता है। बस "pgp-public-keys@pgp.mit.edu" जैसे ईमेल को "0x1DABDBB4CEC06767" के रूप में भेजें। लेकिन आप शायद इसे स्वचालित करने के लिए एक सरल स्क्रिप्ट नहीं लिख सकते।


5

आप कीवर की वेब साइट पर जा सकते हैं, जैसे http://wwwkeys.eu.pgp.net/ कुंजी हस्ताक्षर की खोज करें (आपको हेक्स हस्ताक्षर में 0x जोड़ने की आवश्यकता है) अर्थात 0x1DABDBB4CEC06767।

उस लिंक पर क्लिक करें जो आपको उम्मीद है कि मशीन पर एक फाइल में टेक्स्ट को पेस्ट करें और पेस्ट करें, अर्थात

cat > <filename>

[PASTE]

[Ctrl-C]

फिर

apt-key add <filename>

इसने मेरे लिए ठीक काम किया; ऐसा लगता है कि मेरा काम प्रॉक्सी "गैर-मानक" बंदरगाहों का एक बहुत ब्लॉक करता है।


यह एकमात्र तरीका है जिसने मेरे लिए काम किया। मेरा प्रॉक्सी एचकेपी प्रोटोकॉल को भारी रूप से अवरुद्ध कर रहा है, और भले ही मैं पोर्ट 80 का उपयोग करता हूं, जीपीजी अभी भी एक सर्वर से संपर्क करने से बाहर है। इस तरह मैं अंत में कुंजी जोड़ने में सक्षम था।
अलेक्जेंडर अमेलकिन

4

मुझे पोर्ट 80 के माध्यम से एकल कमांड में इसे करने का एक साफ तरीका मिला जो www ट्रैफिक के लिए हमेशा खुला रहता है।

http://gurrier.wordpress.com/2010/10/02/downlolading-repo-keys-from-behind-a-corporate-firewall/


2
apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv-keys ...
vorburger

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

2

एक सरल उपाय है:

sudo add-apt-repository --keyserver hkps://keyserver.ubuntu.com:443 some_ppa

सुरक्षित https (आउटगोइंग 443) फ़ायरवॉल द्वारा अवरुद्ध नहीं किया जाएगा।


1

मैं बस ssh का उपयोग पोर्ट को किसी बाहरी होस्ट को अग्रेषित करने के लिए करता हूं और फिर apt-add-repoकमांड चलाता हूं ।

ssh -fqTnN -D 11371 <user@host>

-1

मैं gpg के साथ एक ही मुद्दा था। सर्वर में पोर्ट को जोड़ने के साथ वर्कअराउंड मेरी ~/.gnupg/gpg.confफाइल को एडिट करके काम करता है। हालाँकि, मैं अभी भी हमारे sysadmin को आउटबाउंड पोर्ट 11371 खोलने के लिए कहने जा रहा हूं, इसलिए मुझे इस बारे में फिर से चिंता करने की ज़रूरत नहीं है।


पोर्ट? फायरवॉल के चारों ओर काम करने वाले पोर्ट में पोर्ट (11371) को कैसे निर्दिष्ट करता है?
0xC0000022L
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.