Eksik GPG anahtarları nasıl düzeltilir?


154

Ubuntu 12.04'ü yeni yükledim ve bazı repo ekledim ve yaptığım zaman apt-get updategpg anahtarını kaybettim.

Aşağıdaki komut benim için çalışmıyor gibi görünüyor:

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

Bu sorun nasıl çözülür?


1
Bu sorunun cevapları, bu hatanın neden en başta olduğunu ve gelecekte de önlemek için ne yapılması gerektiğini içermesi iyi olurdu.
Flimm

Sorunumu Y-ppa-manager kullanarak çözdüm. Çözüm için Ashu'ya teşekkürler!

1
Ekran görüntüleriyle ilgili ayrıntılı çözüm opensourceforgeeks.blogspot.in/2013/04/…
Aniket Thakur

Yanıtlar:


222

Bu çözümü beğendim, eksik anahtarları Ubuntu anahtar sunucusundan tekrar indirin.

Ubuntu için

Benim durumumda

 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

İşte hata mesajında ​​belirtilen eksik anahtarı ekleme komutu.

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

Bu yüzden, eksik anahtarı alıyorum 2EA8F35793D8809Ave keyserver.ubuntu.com adresinden onu apt.

Linux nane
Kişisel anahtar sunucu biraz farklıdırkeyserver.linuxmint.com

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

Denenecek alternatif anahtar sunucular
keyserver.ubuntu.com


1
askubuntu.com/a/136735/10998 benim için işe yaramadı.
nelaaro

5
Bunu yapmanın herhangi bir güvenlik etkisi var mı? Temelde http üzerinden genel bir anahtar indiriyorum, değil mi?
Ajedi32

1
@iamcreasy, Ubuntu kurulumlarına, kurduğunuz paketlerin güvenli ve zararlı yazılım olmadığını kanıtlamak için ubuntu anahtar sunucusu tarafından her pakette imzalanmıştır. Bu nedenle, yükleyiciniz yüklediğiniz paketin güvenilir ve doğrulanmış bir kaynaktan olup olmadığını kontrol eder. Ben bu konuda herhangi gerçekten iyi belgelerine bulamadı, ancak bu [gpg doc] (yardımcı olabilecek help.ubuntu.com/community/... )
nelaaro

1
İhtiyaç duyulan anahtarların eklenmesi için bir fonksiyon yarattım. adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}Yinelenen veya sorunlu anahtarları kaldırmak için bunu yapmak için kullanıyorum:grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo

1
Ben tavsiye --keyserver ha.pool.sks-keyservers.net. Kullanılabilirliği yüksek anahtar havuzları havuzu, bu da istediğiniz anahtarı alma şansınızı büyük ölçüde artırıyor.
Robin,

21

Y PPA managerGPG anahtarlarının hatalarını düzeltmeye yardımcı olabilecek bir yazılım var .
Y PPA yöneticisi

Yüklemek -

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

Kurduktan sonra başlatın advanceve ardından "tüm eksik GPG anahtarlarını al" seçeneğini seçin.


2
Bu komuta sudo eklemelisin! sudo apt-get...
Fih

Bu benim için de işe yaradı ve Y PPA Manager'ın kolay kullanımı kolay arayüzünden çok etkilendim.
CoalaWeb

Dediğini yaptım ama hiçbir şey olmadı. Yani menüde herhangi bir yerde uygulamayı bulamıyorum.
Cristiana Nicolae

@CristianaNicolae Kurulduktan sonra, Y PPA Yöneticisi'ni Uygulamalar> Sistem Araçları altında bulabilirsiniz.
Ashu

Üzgünüm Ashu, kontrol ettim ve iki kez kontrol ettim. Orada hala göremiyorum. Sistemin bir yerinde kurulu gibi görünüyor, ancak bazı nedenlerden dolayı menüde hiçbir yerde görünmüyor.
Cristiana Nicolae

14

Otomatik indirme apt-key adv --recv-keys, güvenlik duvarının ardında çalışmayabilir.

Bu durumda, Ubuntu Anahtar Sunucusunun web sayfasını web tarayıcınızda açın ve diziyi arayın 0x<hexadecimal code of your missing key>.

Bağlantıyı pub bölümünden açın. Anahtar içeriğini ( -----BEGIN PGP PUBLIC KEY BLOCK-----ila konumundan -----END PGP PUBLIC KEY BLOCK-----) bir dosya olarak kaydedin .

O zaman koş:

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

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


12

ilk önce terminalde aşağıdaki komutu girin

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

sonra terminalde aşağıdaki komutu girerek sisteminizi güncelleyin

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

Bundan sonra hiçbir hata olmamalı ve her şey yolunda gitmeli.


Cevap için teşekkürler. Sorunumun çözülmesi çok daha basitti: sudo suyukarıdaki komutu yazmadan önce yazın
Fih

Bu size yardımcı olacak olsa sudo suda, hiçbir şekilde doğru bir yaklaşım değildir - bu durumda sudo -sihtiyaç duyduğunuz şeyi yapardı.
guntbert

Ben demek istediğin sudo rm /var/lib/apt/lists/* -rf(seçenek "v" yerine "r")
Oliboy50

9
Hem kullanma sudove rmtehlikelidir. Hem kullanma rmve *tehlikelidir. Üçünü aynı komutta kullanın; köpekbalığı sizi veya dosyalarınızı ısırır.
JB.

Bu benim için çalışmıyor.
WiSaGaN

9

Ubuntu 12.04 için Kesin: Kalıcı çözüm

Yeni bir depo ekledikten ve depo listesini güncelledikten sonra oluşan bu hata mesajına. Bu, adresin artık geçerli olmadığı bir sunucudan kaynaklanıyor. O yüzden adresi iyi olana çevir.

  1. Dosyayı ~/.gnupg/gpg.confbir metin editörüyle açın.

    Terminalde: gedit ~/.gnupg/gpg.conf

  2. sonra, bu dosyada, aşağıdaki kalın satırı (116. satır) (aşağıdaki şekilde varsayılan olmalıdır) bulun:

    [...]
    keyserver hkp: //keys.gnupg.net
    # keyserver mailto: pgp-public-keys@keys.nl.pgp.net
    # keyserver ldap: //keyserver.pgp.com

  3. daha sonra aşağıdaki sonucu vermek için aşağıdaki koyu çizgiyi ekleyin:

    (eski adrese yorum yapmak için aşağıdaki gibi ikinci satıra # ekleyin)

    [...] keyserver hkp: //keys.gnupg.net # keyserver mailto: pgp-public-keys@keys.nl.pgp.net # keyserver ldap: //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. Dosyayı kaydedin ve tekrar güncellemeyi deneyin:

    Terminalde: sudo apt-get update


7

Nelaar cevabına göre:

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

Komut tüm hataları geçici bir dosyaya aktarır ve sonra eksik anahtarları içe aktararak bunlar arasında dolaşır.


6

En Kolay Yolu Y PPA Yöneticisiyle

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

Dash'den Y PPA Yöneticisini açın

görüntü tanımını buraya girin

Yönetici Parolanızı Girin

görüntü tanımını buraya girin

Gelişmiş Seçeneğe Çift Tıklama

görüntü tanımını buraya girin

Tüm Eksik GPG Anahtarlarını İçe Aktarmayı Dene'yi tıklatın.

görüntü tanımını buraya girin

Düzeltmek için Tamam'ı tıklayın.


4

İlk önce terminale aşağıdaki komutu girin

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

sonra terminalde aşağıdaki komutu girerek sisteminizi güncelleyin

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

Bundan sonra hiçbir hata olmamalı ve her şey yolunda gitmeli.


2

Benim için işe yarayan, önce anahtarı silmek ve sonra yeniden yüklemek oldu. Bunu başarmak için aşağıdakileri yaptım:

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

ile silme

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

Ardından, yazarak yeniden yükleyin.

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

1

Aynı sorunla karşılaştım, bir ppa ( ppa:nathandyer/vocal-stable) ekleyerek depolarım kırıldı. Web Upd8'in yazarından, bunu nasıl düzeltebileceğime dair rehberlik ettim, işte bana çalışan adımları.

Bir .gpgşeyler ters giderse , anahtarlarınızı yedekleyin .

İçeriğimizin yedeğini alacağımız bir klasör yapalım.

  • mkdir ~/gpg-backups

    Bu, /etc/apt/trusted.gpg.d/klasördeki tüm dosyaları yedekler .

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

Şimdi tüm .gpganahtarları kaldıracağız .

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

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

  • sudo rm /etc/apt/trustdb.gpg

Yazılım ve Güncellemeler'de, "Kimlik Doğrulama" sekmesinde "Varsayılanları Geri Yükle" yi tıklayın.

Tüm eksik GPG anahtarlarını almak için y-ppa yöneticisini kurun

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

Referans :


1
Bir satır bir hata içeriyor gibi görünüyor olmalı sudo rm /etc/apt/trusted.gpg.d/*. Atlanması, *sizinle boş olmayan dizinleri kaldıramazsınız olarak EOL, mümkün olmadığı rmzaman -rseçeneği Ah .-- belirtilmemişse ve çizgi ile 1 taşla 2 kuş vurmak olabilir sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/. Çünkü dosyayı taşırsanız , rmdaha sonra kaynak dosyaya ihtiyacınız yoktur .
sözdizimi 13:15

1

Bir bash betiğinde bu gibi hataları otomatik olarak düzeltmek istedim. İlgilenen herkes için bu hile yapmalı:

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

0

Böyle bir şey varsa:

# 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

Her şeyden önce deneyin:

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

Son komutun çıktısı:

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

Yani gitmem gerek /etc/apt/trusted.gpg.d/tekrarlamak sonra ve kullanılmayan anahtarlarını kaldırın ve apt-key advveaptitude update


0

Çalıştırmak wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -


-1

Bu sorun, 12.04'ü Alman ayarları kullanarak kurduğumda ortaya çıktı. Depo listesi varsayılan olarak Alman ayna depolarını kullanıyor. Bu durumda, depo listesini düzenleyebilir ve tüm Alman ayna depolarını Ubuntu standart depolarına değiştirebilirsiniz.

Aşağıdaki yöntemi kullanabilirsiniz:

sudo nano /etc/apt/sources.list

Nano içinde Alt- kullanarak arama yapın ve değiştirin -r

Ara (değiştirilecek): /de.

İle değiştirin: /

Tümünü Değiştir (Basın A)

Dosyayı kaydet Ctrl-x

Ardından, terminale aşağıdaki komutu girerek sisteminizi güncelleyin:

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

Bundan sonra hiçbir hata olmamalı ve her şey yolunda gitmeli.


2
Bu özellikle OP'lerin sorusuna, özellikle de kaynakları kullanmadıklarını düşünerek cevap vermiyor.
Kevin Bowen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.