Bagaimana cara memperbaiki kunci GPG yang hilang?

154

Saya baru saja menginstal Ubuntu 12.04 dan saya menambahkan beberapa repo, dan ketika saya lakukan apt-get update, saya kehilangan kunci gpg.

Perintah berikut tampaknya tidak berfungsi untuk saya:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

Bagaimana cara mengatasi masalah ini?

Fih
sumber
1
Akan lebih baik jika jawaban untuk pertanyaan ini termasuk mengapa kesalahan ini terjadi di tempat pertama, dan apa yang harus dilakukan untuk menghindarinya di masa depan.
Flimm
Saya memecahkan masalah saya menggunakan Y-ppa-manager. Terima kasih kepada Ashu untuk solusinya!
1
Solusi terperinci dengan tangkapan layar opensourceforgeeks.blogspot.in/2013/04/...
Aniket Thakur

Jawaban:

222

Saya menyukai solusi ini, mengunduh ulang kunci yang hilang dari server kunci Ubuntu.

Untuk Ubuntu

Dalam hal ini

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

Berikut adalah perintah untuk menambahkan kunci yang hilang yang disebutkan dalam pesan kesalahan.

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

Jadi saya mengambil kunci yang hilang 2EA8F35793D8809Adan meminta keyserver.ubuntu.com untuk menambahkannya ke daftar kunci yang saya miliki di apt.

Untuk linux mint Server kunci
Anda sedikit berbedakeyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

Server kunci alternatif untuk dicoba
keyserver.ubuntu.com

nelaaro
sumber
1
askubuntu.com/a/136735/10998 tidak berfungsi untuk saya.
nelaaro
5
Apakah ada implikasi keamanan untuk melakukan ini? Saya pada dasarnya hanya mengunduh kunci publik melalui http, bukan?
Ajedi32
1
@iamcreasy, untuk membuktikan kepada instalasi Ubuntu bahwa paket yang Anda instal aman dan bebas malware setiap paket ditandatangani oleh server kunci ubuntu. Jadi penginstal Anda memeriksa apakah paket yang Anda instal berasal dari sumber yang tepercaya dan terverifikasi. Saya belum menemukan dokumentasi yang benar-benar bagus tentangnya, tetapi ini mungkin membantu [gpg doc] ( help.ubuntu.com/community/… )
nelaaro
1
Saya telah membuat fungsi jangan menambahkan kunci yang diperlukan adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}Dan untuk menghapus kunci yang digandakan atau bermasalah saya gunakan untuk melakukan ini:grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo
1
Saya merekomendasikan --keyserver ha.pool.sks-keyservers.net. Ini adalah kumpulan server kunci dengan ketersediaan tinggi, yang sangat meningkatkan peluang Anda untuk mendapatkan kunci yang Anda inginkan.
Robin suka burung
21

Ada perangkat lunak yang disebut sebagai Y PPA managerIni dapat membantu memperbaiki kesalahan kunci GPG.
Manajer PPA Y

Untuk memasang -

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

Setelah Anda menginstalnya, mulai advancedan pilih "impor semua kunci GPG yang hilang"

Ashu
sumber
2
Anda harus menambahkan sudo ke perintah ini! sudo apt-get...
Fih
Ini bekerja untuk saya juga dan saya sangat terkesan dengan antarmuka Y PPA Manager yang bersih dan mudah digunakan, itu adalah penemuan yang bagus, Terima kasih Ashu.
CoalaWeb
Saya melakukan apa yang Anda katakan tetapi tidak ada yang terjadi. Maksud saya, saya tidak dapat menemukan aplikasi di menu mana pun.
Cristiana Nicolae
@CristianaNicolae Setelah terinstal, Anda dapat menemukan Y PPA Manager di bawah Applications> System Tools.
Ashu
Maaf Ashu, saya telah memeriksa dan memeriksa ulang. Saya masih tidak bisa melihatnya di sana. Tampaknya diinstal di suatu tempat di sistem, tetapi karena beberapa alasan, itu tidak muncul di menu.
Cristiana Nicolae
14

Penggunaan unduhan otomatis apt-key adv --recv-keysmungkin tidak berfungsi di balik firewall.

Dalam hal ini, buka halaman web Ubuntu Key Server di browser web Anda dan cari string 0x<hexadecimal code of your missing key>.

Buka tautan di bagian pub . Simpan konten utama (dari -----BEGIN PGP PUBLIC KEY BLOCK-----hingga -----END PGP PUBLIC KEY BLOCK-----) sebagai file.

Lalu lari:

sudo apt-key add <file-with-saved-key>

Sumber: http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html

Melebius
sumber
12

pertama-tama masukkan perintah berikut di terminal

 sudo rm /var/lib/apt/lists/* -vf

kemudian perbarui sistem Anda dengan memasukkan perintah berikut di terminal

 sudo apt-get update && sudo apt-get upgrade

setelah ini seharusnya tidak ada kesalahan dan semuanya akan berfungsi dengan baik.

Bharat
sumber
terima kasih. Solusi untuk masalah saya lebih mudah: ketik sudo susebelum mengetik perintah saya di atas
Fih
Meskipun itu akan membantu Anda, sudo susama sekali bukan pendekatan yang benar - dalam hal ini sudo -sakan melakukan apa yang Anda butuhkan.
guntbert
Saya pikir Anda maksud sudo rm /var/lib/apt/lists/* -rf(opsi "r" bukan "v")
Oliboy50
9
Menggunakan keduanya sudodan rmberbahaya. Menggunakan keduanya rmdan *berbahaya. Gunakan ketiganya dalam perintah yang sama dan hiu akan menggigit Anda, atau file Anda.
JB.
Ini tidak bekerja untuk saya.
WiSaGaN
9

Untuk Ubuntu 12.04 Precise: Solusi permanen

pesan kesalahan ini terjadi setelah menambahkan repositori baru dan memperbarui daftar repositori. Ini karena server yang alamatnya tidak lagi valid. Jadi ubah saja alamatnya menjadi bagus.

  1. Buka file ~/.gnupg/gpg.confdengan editor teks.

    Di terminal: gedit ~/.gnupg/gpg.conf

  2. kemudian, dalam file ini, cari baris tebal berikut (baris ke-116) (yang seharusnya default sebagai berikut):

    [...]
    keyserver hkp: //keys.gnupg.net
    # keyserver mailto: [email protected]
    # keyserver ldap: //keyserver.pgp.com

  3. kemudian tambahkan baris tebal berikut, untuk akhirnya memberikan hasil berikut:

    (tambahkan # ke baris kedua sebagai berikut untuk mengomentari alamat lama)

    [...] keyserver hkp: //keys.gnupg.net # keyserver mailto: [email protected] # keyserver ldap: //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. Simpan file dan coba perbarui lagi:

    Di terminal: sudo apt-get update

blitzter47
sumber
7

Berdasarkan jawaban nelaar:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

Script membuang semua kesalahan ke file sementara dan kemudian mengulanginya, mengimpor kunci yang hilang.

Zafarella
sumber
6

Cara Paling Mudah Adalah Dengan Y PPA MAnager

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

Buka Y PPA Manager Dari Dash

masukkan deskripsi gambar di sini

Masukkan Kata Sandi Admin Anda

masukkan deskripsi gambar di sini

Klik dua kali pada opsi lanjutan

masukkan deskripsi gambar di sini

Klik Coba Impor Semua Kunci GPG yang Hilang

masukkan deskripsi gambar di sini

Klik Ok Untuk Memperbaikinya

Qasim
sumber
4

Pertama-tama masukkan perintah berikut di terminal

sudo rm /var/lib/apt/lists/* -vf

kemudian perbarui sistem Anda dengan memasukkan perintah berikut di terminal

sudo apt-get update && sudo apt-get upgrade

setelah ini seharusnya tidak ada kesalahan dan semuanya akan berfungsi dengan baik.

DaniilPiter
sumber
2

Apa yang berhasil bagi saya adalah menghapus kunci terlebih dahulu dan kemudian menginstal ulang. Untuk mencapai itu saya melakukan hal berikut:

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

menghapus dengan

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

Kemudian, instal ulang dengan mengetik

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5
QuixRhyno
sumber
1

Saya mengalami masalah yang sama, dengan menambahkan ppa ( ppa:nathandyer/vocal-stable), itu merusak repositori saya. Saya dibimbing dari Penulis Web Upd8, tentang bagaimana saya dapat mencoba untuk memperbaikinya, berikut langkah-langkahnya yang membantu saya.

Cadangkan .gpgkunci Anda , kalau-kalau terjadi kesalahan.

Mari kita membuat folder di mana kita akan menyimpan cadangan kita.

  • mkdir ~/gpg-backups

    Ini mencadangkan semua file di /etc/apt/trusted.gpg.d/folder.

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

Sekarang, kami akan menghapus semua .gpgkunci.

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

di Perangkat Lunak & Pembaruan, pada tab "Otentikasi", klik "Kembalikan Default."

Instal manajer y-ppa untuk mengimpor semua kunci GPG yang hilang

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Referensi :

blade19899
sumber
1
Satu baris sepertinya mengandung kesalahan, harus sudo rm /etc/apt/trusted.gpg.d/*. Menghilangkan *di EOL tidak dimungkinkan, karena Anda tidak dapat menghapus direktori yang tidak kosong rmketika -ropsi tidak ditentukan .-- Ah, dan Anda dapat membunuh 2 burung dengan 1 batu di garis sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/. Karena jika Anda memindahkan file, Anda tidak perlu rmfile sumber sesudahnya.
syntaxerror
1

Saya ingin memperbaiki kesalahan seperti ini secara otomatis dalam skrip bash. Bagi siapa pun yang tertarik, ini harus melakukan trik:

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi
pengguna2304170
sumber
0

Jika Anda memiliki sesuatu seperti ini:

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

Pertama-tama coba:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

Output dari perintah terakhir dapat:

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

Jadi, Anda harus pergi ke /etc/apt/trusted.gpg.d/dan menghapus kunci yang tidak digunakan dan kemudian ulangi apt-key advdanaptitude update

ipeacocks
sumber
0

Lari wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

towfiqpiash
sumber
-1

Masalah ini terjadi pada saya ketika saya menginstal 12,04 menggunakan pengaturan Jerman. Daftar repositori kemudian menggunakan repositori mirror Jerman secara default. Jika demikian, Anda dapat mengedit daftar repositori dan mengubah semua repositori mirror Jerman ke repositori standar Ubuntu.

Anda dapat menggunakan metode berikut:

sudo nano /etc/apt/sources.list

Cari dan ganti di Nano menggunakan Alt-r

Cari (untuk menggantikan): /de.

Ubah dengan: /

Ganti Semua (Tekan A)

Simpan file Ctrl-x

Kemudian perbarui sistem Anda dengan memasukkan perintah berikut di terminal:

sudo apt-get update && sudo apt-get upgrade

Setelah ini seharusnya tidak ada kesalahan dan semuanya akan berfungsi dengan baik.

taufan
sumber
2
Ini tidak benar-benar menjawab pertanyaan OP terutama mengingat mereka tidak menggunakan sumber de.
Kevin Bowen