วิธีการแก้ไขพอร์ต hkp ขาออกที่ถูกบล็อกสำหรับคีย์ apt


35

ฉันใช้ Ubuntu 9.10 และจำเป็นต้องเพิ่มที่เก็บ apt น่าเสียดายที่ฉันได้รับข้อความเช่นนี้เมื่อทำงาน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

ดูบทความช่วยเหลือของ Ubuntu นี้สำหรับรายละเอียด

นี่เป็นสิ่งที่ดีมากยกเว้นว่าฉันกำลังใช้งานอยู่บนเวิร์กสเตชันด้านหลังไฟร์วอลล์ซึ่งบล็อกการเชื่อมต่อขาออกไปยังพอร์ตทั้งหมดยกเว้นพอร์ตที่เลขานุการของ Windows และ IE ต้องการ

คำถามที่นี่คือบริการ hkp, พอร์ต 11371

ดูเหมือนจะมีวิธีการดาวน์โหลดคีย์ด้วยตนเองและติดตั้งไว้ในพวงกุญแจของ apt อาจมีวิธีใช้ add-apt-repository หรือ wget หรือบางอย่างเพื่อดาวน์โหลดคีย์จากเซิร์ฟเวอร์ทางเลือกซึ่งทำให้สามารถใช้งานได้บนพอร์ต 80

อย่างไรก็ตามฉันยังไม่พบขั้นตอนที่รัดกุมในการทำเช่นนั้น สิ่งที่ฉันกำลังมองหาคือ:

  1. วิธีค้นหาคีย์สาธารณะสำหรับแพ็คเกจ apt (คำแนะนำสำหรับทรัพยากรที่มีสิ่งเหล่านี้และ / หรือเคล็ดลับในการค้นหาการค้นหาแฮชคีย์นั้นดูเหมือนจะไม่ได้ผลเท่าที่ควร)
  2. วิธีการดึงกุญแจ (สามารถทำได้โดยอัตโนมัติโดยใช้ gpg หรือ add-apt-repository?)
  3. วิธีเพิ่มคีย์ให้กับ keyring ของ apt

ขอบคุณล่วงหน้า.

คำตอบ:


38

สิ่งนี้ได้รับการแก้ไขในรุ่น Natty ที่กำลังจะมาถึงของ Ubuntu: https://launchpad.net/ubuntu/natty/+source/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
ยอดเยี่ยม - แก้ไขปัญหาของฉัน!
Fedearne

13
ใน 10.10 แทนที่จะแก้ไขไฟล์ต้นฉบับนี้ฉันสามารถโทรหาsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys KEY_HASH
l0b0

hkp://keyserver.ubuntu.com:80ทำงานบน 10.04 เช่นกัน
bd808

1
+1 สำหรับการใช้งาน--keyserver hkp://keyserver.ubuntu.com:80
rogeriolino


13

นี่เป็นวิธีหนึ่งที่ฉันใช้:

ฉันเข้าสู่เซิร์ฟเวอร์ linux ในโลกเสรีเกินกว่าไฟร์วอลล์องค์กรของเราและทำสิ่งนี้:

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

จากนั้นบนเวิร์กสเตชันของฉันฉันรันสิ่งนี้และวางเอาต์พุตจากคำสั่งด้านบน (กุญแจสาธารณะ) ลงใน stdin ตามด้วย control-D:

sudo apt-key add -

จากนั้นฉันก็สามารถวิ่งได้sudo apt-get updateโดยไม่มีปัญหา

ฉันยังคงคิดว่าจะต้องมีวิธีที่ดีกว่าบางอย่างที่ฉันสามารถเขียน


"ฉันเข้าสู่ระบบเซิร์ฟเวอร์ linux ในโลกเสรี"ไม่น่าเป็นไปได้ที่จะทำเช่นนี้ในกรณีที่ hkp ถูกบล็อก
gertvdijk

^ อาจสมมติว่าคุณกำลังอยู่ในระบอบเผด็จการและไม่ใช่แผนกไอทีของไบเซนไทน์ ฉันสามารถ SSH ทุกที่ที่ฉันต้องการเมื่อฉันใช้ VPN แต่ไม่มีแพ็กเก็ต DNS (และเห็นได้ชัดว่าไม่ใช่ HKP) นี่คือสิ่งที่ฉันต้องการ
Kingdon

8

ฉันมีวิธีแก้ไขปัญหาอื่นที่นี่ซึ่งอาจมีประโยชน์หากคุณไม่พบเซิร์ฟเวอร์ linux อื่นนอกเครือข่ายของคุณเป็นพร็อกซี เพียงส่งอีเมลไปที่ "pgp-public-keys@pgp.mit.edu" เช่นหัวเรื่องเป็น "รับ 0x1DABDBB4CEC06767" แต่คุณอาจยังไม่สามารถเขียนสคริปต์เพื่อทำให้สิ่งนี้เป็นแบบอัตโนมัติ


5

คุณสามารถไปที่เว็บไซต์ของ keyserver เช่นhttp://wwwkeys.eu.pgp.net/ ค้นหาลายเซ็นกุญแจ (คุณต้องเพิ่ม 0x ลงในลายเซ็นฐานสิบหก) เช่น 0x1DABDBB4CEC06767

คลิกที่ลิงค์ที่คุณหวังว่าจะได้รับและวางข้อความลงในไฟล์บนเครื่องเช่น

cat > <filename>

[PASTE]

[Ctrl-C]

แล้วก็

apt-key add <filename>

มันใช้ได้ดีสำหรับฉัน ดูเหมือนว่าพร็อกซีงานของฉันบล็อกพอร์ต "ที่ไม่ได้มาตรฐาน" จำนวนมาก


นี่เป็นวิธีเดียวที่ได้ผลสำหรับฉัน พร็อกซีของฉันปิดกั้นโพรโทคอล hkp อย่างมากและแม้ว่าฉันจะใช้พอร์ต 80, gpg ยังคงหมดเวลาติดต่อกับเซิร์ฟเวอร์ ในที่สุดฉันก็สามารถเพิ่มรหัสได้
Alexander Amelkin

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
สวัสดีและยินดีต้อนรับสู่ superuser เมื่อตอบคำถามโปรดตอบคำถามด้วยคำตอบในตัวเอง ไม่มีการรับประกันว่าเว็บไซต์ที่คุณอ้างถึงจะทำให้เว็บไซต์เป็นไปตามนั้นและหากเว็บไซต์ล้มเหลวคำตอบของคุณจะไร้ค่า
Mogget

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ไฟล์ของฉัน อย่างไรก็ตามฉันยังคงขอให้ดูแลระบบของเราเพื่อเปิดพอร์ตขาออก 11371 ดังนั้นฉันไม่ต้องกังวลเกี่ยวกับเรื่องนี้อีก


พอร์ต? การระบุพอร์ต (11371) ในการกำหนดค่าทำงานกับไฟร์วอลล์ได้อย่างไร
0xC0000022L
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.