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.

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.


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

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.


"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 "pgp-public-keys@pgp.mit.edu" seperti subjek sebagai "dapatkan 0x1DABDBB4CEC06767". Tetapi Anda mungkin masih tidak dapat menulis skrip sederhana untuk mengotomatisasi ini.


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".


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/


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.


1

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

ssh -fqTnN -D 11371 <user@host>

-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.


The Port? Bagaimana cara menentukan port (11371) dalam konfigurasi bekerja di sekitar firewall?
0xC0000022L
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.