Cara bekerja di sekitar port hkp keluar yang diblokir untuk kunci apt

35

Saya menggunakan Ubuntu 9.10, dan perlu menambahkan beberapa repositori apt. Sayangnya, saya mendapat pesan seperti ini saat menjalankan 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

Jadi, saya perlu menginstal kunci untuk repositori ini. Di bawah 9,10 kita sekarang memiliki opsi untuk melakukan ini:

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

Lihat artikel bantuan Ubuntu ini untuk detailnya.

Ini hebat, kecuali bahwa saya menjalankan ini pada workstation di belakang firewall yang memblokir koneksi keluar ke hampir semua port kecuali yang diperlukan oleh sekretaris yang menjalankan Windows dan IE.

Port yang dimaksud di sini adalah layanan hkp, port 11371.

Tampaknya ada cara untuk mengunduh kunci secara manual dan memasangnya di keyring apt. Bahkan mungkin ada cara untuk menggunakan add-apt-repository atau wget atau sesuatu untuk mengunduh kunci dari server alternatif sehingga tersedia di port 80.

Namun, saya belum menemukan serangkaian langkah singkat untuk melakukannya. Yang saya cari adalah:

  1. Cara menemukan kunci publik untuk paket-tepat (rekomendasi untuk sumber daya yang memiliki ini, dan / atau tips untuk mencari. Mencari hash kunci tampaknya tidak begitu efektif sejauh ini.)
  2. Bagaimana cara mengambil kunci (dapatkah itu dilakukan secara otomatis menggunakan gpg atau add-apt-repository?)
  3. Cara menambahkan kunci ke keyring apt

Terima kasih sebelumnya.

Kemalasan
sumber

Jawaban:

38

Ini telah diperbaiki dalam versi Natty Ubuntu yang akan datang: https://launchpad.net/ubuntu/natty/+source/software-properties/0.78.1

Mereka yang menggunakan versi yang lebih lama perlu mengedit ppa.py:

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

Di mana dikatakan:

keyserver.ubuntu.com

mengubah:

hkp://keyserver.ubuntu.com:80

Simpan, keluar, maka semoga Anda baik-baik saja.

Phil Bradley
sumber
1
Luar biasa - memecahkan masalah saya!
Fedearne
14
Pada 10.10, alih-alih mengedit file sumber ini, saya cukup memanggilsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys KEY_HASH
l0b0
hkp://keyserver.ubuntu.com:80bekerja pada 10,04 juga.
bd808
1
+1 untuk digunakan--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
pengguna46707
sumber
13

Inilah satu solusi yang saya gunakan:

Saya masuk ke server linux di dunia bebas di luar firewall perusahaan kami, dan melakukan ini:

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

Kemudian di workstation saya, saya menjalankan ini, dan menempelkan output dari perintah di atas (kunci publik) ke stdin, diikuti oleh control-D:

sudo apt-key add -

Kemudian saya bisa berlari sudo apt-get updatetanpa masalah.

Saya masih berpikir harus ada cara yang lebih baik, idealnya sesuatu yang bisa saya skrip.

Kemalasan
sumber
"Saya masuk ke server linux di dunia bebas" Tidak mungkin orang dapat melakukan ini jika hkp diblokir.
gertvdijk
^ mungkin dengan asumsi Anda hidup dalam rezim yang represif dan bukan departemen IT Bizantium. Saya dapat SSH di mana saja saya inginkan ketika saya menggunakan VPN, tetapi tidak ada paket DNS (dan ternyata tidak ada HKP.) Inilah yang saya butuhkan.
Kingdon
8

Saya punya solusi lain di sini yang mungkin berguna jika Anda tidak dapat menemukan server linux lain di luar jaringan Anda sebagai proxy. Cukup kirim email ke "[email protected]" seperti subjek sebagai "dapatkan 0x1DABDBB4CEC06767". Tetapi Anda mungkin masih tidak dapat menulis skrip sederhana untuk mengotomatisasi ini.

Roger Choi
sumber
5

Anda dapat mengunjungi situs web keyserver, mis. Http://wwwkeys.eu.pgp.net/ Cari tanda tangan kunci (Anda perlu menambahkan 0x ke tanda tangan hex) yaitu 0x1DABDBB4CEC06767.

Klik pada tautannya Anda diharapkan akan mendapatkan dan menempelkan teks ke dalam file di mesin, yaitu

cat > <filename>

[PASTE]

[Ctrl-C]

Kemudian

apt-key add <filename>

Ini bekerja dengan baik untuk saya; sepertinya proxy pekerjaan saya memblokir banyak port "non-standar".

CJBrew
sumber
Ini satu-satunya cara yang berhasil bagi saya. Proxy saya banyak memblokir protokol hkp, dan bahkan jika saya menggunakan port 80, gpg masih keluar menghubungi server. Dengan cara ini saya akhirnya bisa menambahkan kunci.
Alexander Amelkin
4

Saya menemukan cara yang rapi untuk melakukannya dalam satu perintah melalui port 80 yang selalu terbuka untuk lalu lintas www.

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

tony
sumber
2
apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv-keys ...
vorburger
1
Halo dan selamat datang di superuser. Saat menjawab pertanyaan, harap jawab pertanyaan dengan solusi di balasan itu sendiri. Tidak ada jaminan bahwa situs yang Anda referensikan akan membuat situs tetap naik dan jika turun, maka jawaban Anda tidak akan bernilai.
Mogget
2

Solusi sederhana adalah:

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

Https aman (keluar 443) tidak akan diblokir oleh firewall.

Thien Pham
sumber
1

Saya cukup menggunakan ssh untuk meneruskan port ke host eksternal kemudian jalankan apt-add-repoperintah.

ssh -fqTnN -D 11371 <user@host>
Thermionix
sumber
-1

Saya memiliki masalah yang sama dengan gpg. Solusi dengan menambahkan port ke nama server bekerja dengan mengedit ~/.gnupg/gpg.conffile saya . Namun, saya masih akan meminta sysadmin kami untuk membuka port keluar 11371, jadi saya tidak perlu khawatir tentang ini lagi.

Patrick Salami
sumber
The Port? Bagaimana cara menentukan port (11371) dalam konfigurasi bekerja di sekitar firewall?
0xC0000022L