sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 perintah mengembalikan kesalahan

30

Saya mencoba menginstal Mongodb di Ubuntu 12 tetapi ketika saya menjalankan perintah ini:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Ini mengembalikan kesalahan di bawah ini:

host keyserver.ubuntu.com tidak ditemukan
gpgkeys: HTTP fetch error 7: tidak dapat terhubung: tidak ada file atau direktori
gpg: tidak ada data openPGP yang valid ditemukan
gpg: Total proses angka: 0

Saya mematikan Firewall di Iptables, tetapi tidak berhasil. Apakah ada ide?

nyamka
sumber
Bisakah sistem Anda menyelesaikan keyserver.ubuntu.com sebagai alamat IP? Yaitu, apa hasilnya dig keyserver.ubuntu.com?
Xyon

Jawaban:

35

Ini mungkin sebenarnya bukan masalah dengan mencari keyserver, yang merupakan kesalahan yang disarankan. Perintah apt-key memanggil gpg, yang pada gilirannya mencoba mengakses server kunci. Rupanya ada bug di gpg di mana jika keyserver tidak memiliki kunci yang Anda minta, maka gpg salah mengartikan itu sebagai "host tidak ditemukan".

Mungkin saja server kunci non-responsif akan melakukan hal yang sama, dan saya telah melihat lingkungan di mana server kunci diblokir (aturan firewall perusahaan), sehingga bisa menjadi penyebab utama Anda jika ada firewall hulu yang tidak Anda akses. untuk.

Hanya untuk referensi, kuncinya ada di sana dan server kunci saat ini merespons untuk saya:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.rh1myoBdSE --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

Mungkin port yang menjadi masalah (ini adalah yang terakhir kali ketika saya menemukan masalah firewall perusahaan), jadi coba lakukan ini pada port HTTP standar (80) sebagai gantinya, lihat apakah itu beres:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Adam C
sumber
4
"Melakukan ini pada port HTTP standar (80) sebagai gantinya" itu bagus! tks
Bill.Zhuang
1
Peringatan: tanpa SSL, Anda berpotensi terkena serangan MitM yang melayani Anda dengan kunci yang sidik jarinya memiliki delapan karakter terakhir yang sama ( misalnya kunci serangan ). Kunci semacam itu bahkan mungkin tidak dibagikan secara publik, jadi Anda tidak akan pernah tahu bahwa Anda telah dipermainkan. Untuk mencegah serangan semacam itu dari kunci yang dibagikan secara publik, server kunci Debian memiliki kebijakan yang menyatakan "hanya kunci di kunci-kunci Debian ... yang akan dikembalikan oleh server ini"
Adam Katz
21

Saya menghadapi masalah yang sama dengan mesin saya di belakang proxy perusahaan. Menambahkan gpg --keyserver-option http-proxytrik yang dibuat. Seperti:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10
fgungnir
sumber
1
Terima kasih! Bagus bahwa saya tidak berhenti membaca di bagian atas ...
Moraru Lilian
20

Jika Anda menggunakan proxy, misalnya proxy perusahaan maka mungkin satu-satunya cara adalah memasukkan ini secara manual, yang cukup mudah. Menjalankan:

sudo apt-get update

dan dapatkan id dari pub_key. Lalu buka http://keyserver.ubuntu.com/ dan cari kunci tersebut sebagai hexidecimal, misalnya jika kunci tersebut 7936A783B, kemudian cari 0x7936A783B. Klik pada tautan pup dan salin konten kunci dan simpan ke file txt. Pergi ke terminal dan arahkan ke file dan jalankan:

sudo apt-key add key.txt

Jika berhasil, Anda akan mendapatkan OKumpan balik sederhana . Ketika semua kunci ditambahkan, maka Anda dapat menjalankan:

sudo apt-get update

dan begitulah!

DKo
sumber
3
Ini rapi; Anda juga dapat menggunakan URL yang Anda peroleh dengan kata demi kata apt-keysebagai berikut:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
sxc731
2
@ sxc731 - apt-keyHalaman manual mengatakan: "Perhatikan bahwa tidak ada pemeriksaan yang dilakukan, sehingga mudah untuk benar-benar merusak infrastruktur apt-secure (8) jika digunakan tanpa perawatan." Ini berarti Anda benar - benar tidak ingin melakukan itu tanpa SSL. Ubah itu menjadi --fetch-keys https://…dan Anda harusnya cukup aman.
Adam Katz
@AdamKatz poin yang sangat bagus, terima kasih. Sayangnya saya tidak dapat mengedit komentar saya untuk menerapkan saran Anda tetapi tetap dipilih ...
sxc731
The --fetch-keyspilihan gagal untuk saya dengan kesalahan: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol https' tidak didukung gpg: tidak ada handler untuk skema keyserverhttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin
Terima kasih, persis apa yang saya cari.
Miguel Ortiz
1

Pendekatan kedua yang disebutkan dalam tautan ini bekerja untuk saya. Unduh kunci secara manual dan tambahkan. Tautan menyediakan prosedur langkah demi langkah untuk memperbaiki kesalahan yang terjadi karena kunci yang hilang.

Aniket Thakur
sumber