“NO_PUBKEY” GPG hatasını nasıl düzeltirim?


364

Yazılım Kaynakları programı ile bazı ek depolar ekledim. Ancak paket veritabanını yeniden yüklediğimde aşağıdaki gibi bir hata alıyorum:

W: GPG hatası: http://ppa.launchpad.net trusty InRelease: Açık anahtar mevcut olmadığından aşağıdaki imzalar doğrulanamadı: NO_PUBKEY 8BAF9A6F

apt-keyResmi Ubuntu belgelerine göre terminal kullanarak düzeltebileceğimi biliyorum . Ama grafiksel olarak yapmak isterdim. Terminal kullanmadan bunu yapmanın bir yolu var mı?



'Bir Anlam'? Ne demek istediğini merak ettin.
Michael Scheper

1
Bu SO konusunu çözüm için kontrol edebilirsiniz . Link to ilgili sitede
Aniket Thakur

@ MichaelScheper 'Terminal açmamak için bir anlamı var mı?' = ~ 'Terminalsiz yapmanın bir yolu var mı?'
Wilf

@Wilf: Ah! Dilbilgisini nitpick demek istemem ama aklımı karıştırdı. Kontrol ettiğim referanstan, 'demek' tekil bir isim ve demek istediğin anlamına gelir. dictionary.cambridge.org/dictionary/english/means Ancak eğer siz ve Agmentor, eğer sorudaki dilbilgisinin doğru olduğu bazı İngilizce türlerini kullanıyorsanız, ilgimi çektiğim için başvuruda bulunmayı çok isterim. bu tür bir şey. ☺
Michael Scheper

Yanıtlar:


211

Şimdiye kadar bunu ele almanın en basit yolu Y-PPA-Manager (şimdi launchpad-getkeysbetiği grafiksel bir arayüzle bütünleştiriyor ).

  1. Yüklemek için önce bu programın webupd8 deposunu ekleyin:

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. Yazılım listenizi güncelleyin ve Y-PPA Yöneticisi'ni yükleyin:

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. Y-ppa-manager programını çalıştırın (örneğin, y-ppa-managersonra da enter tuşuna basın).

  4. Ana y-ppa yöneticisi penceresi göründüğünde, "Gelişmiş" düğmesini tıklayın.

  5. Gelişmiş görevler listesinden "Eksik olan tüm GPG anahtarlarını almayı dene" yi seçin ve Tamam'ı tıklayın.

    Sen bittin! Uyarı iletişim kutusunun işlemi başlattığınızda belirttiği gibi, kaç KKA'nız olduğuna ve bağlantınızın hızına bağlı olarak biraz zaman alabilir (benim için yaklaşık 2 dakika).


18
Bir web sunucusunda pek kullanışlı değil, çünkü bu X11'i yükler. Bir sunucu sürümündeyseniz bu yöntemi kullanmayın, karthick87'nin cevabını kontrol edin!
goncalotomas

2
Bu, alınan anahtarların doğrulanmasına izin veriyor mu, yoksa her şeyi kör bir şekilde içe aktarıyor musunuz (ve bu nedenle de PPA olan herkese güveniyorsunuz)?
Paŭlo Ebermann

2
Sisteminize eklediğiniz her bir PPA'nın anahtarlarını alıyorsunuz (ve güveniyorsunuz). Bu varsayım, bu PPA'lara güvendiğiniz ve apt ile eklemeden önce onları kontrol ettiğinizdir.
monotasker

6
Bu cevap daha kolaydır arayla ve aslında bu "grafiksel" cevabını daha az komutları gerektirir.
jpaugh,

1
Ancak soru grafiksel bir yöntem istedi.
monotasker

555

Terminalde aşağıdaki komutları uygulayın

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

<PUBKEY>Örneğin, depo için eksik olan kamu anahtarınız nerede 8BAF9A6F?

Sonra güncelleme

sudo apt-get update

ALTERNATİF YÖNTEM:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

Bunu kullanarak bir anahtar apt-keyaldığınızda, sisteminize, kullanacağınız imzalama yazılımı imzalamak için içe aktardığınız anahtarın güvendiğiniz olduğunu söylersiniz. Anahtarın gerçekten paket dağıtıcısının anahtarı olduğundan emin değilseniz, bunu yapmayın.


2
@Naruto Bu normal. Bunun anlamı şu liste sunucusunda değişmedi.
12'de

9
NO_PUBKEYDeğeri sadece keys parametresi olarak iletebilirsiniz . örneğin GPG hatası [...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv - keyserver keyserver.ubuntu.com --recv-keys 3766223989993A70
SMMousavi

23
8BAF9A6F <- bu numarayı nereden aldınız?
Olivier Lalonde

13
8BAF9 ... sayısı asıl hatada gördüğünüz sayıdır. NO_PUBKEY 8BAF gibi bir şey olurdu ...
Alex,

9
Birisi benimle depo arasındaki veriyi değiştirmişse ve imzaladıkları yer değiştirmişse, bu kullandıkları anahtarı az ya da çok kör kullanarak ekleyeceğim. Peki, anahtarın doğru olduğunu doğrulama süreci nedir?
mc0e

43

Bir havuz için uygun bir ortak anahtara sahip olmadığınız zaman olur.

Bu sorunu çözmek için bu komutu kullanın:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

Bu anahtar ubuntu anahtar sunucusundan alır. Ve sonra bu:

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

hangi apt tuşlarına apt tuşunu ekler.

Çözüm burada ve burada ve burada bulunabilir .


4
Eğer hkp: //keyserver.ubuntu.com çalışmıyorsa bu pgpkeys.mit.edusunucuyu kullanın .
RajaRaviVarma

1
Bu cevap Kylin deposu ile olan sorunumu çözdü. Sogou pinyin giriş yöntemi klasörüme kaynak ekledi /etc/apt/sources.list.d/, ancak görünüşe göre gpg anahtarını almadı. İyi cevap, basit ve
konuya

1
Teşekkürler! PHP deposu sorunu çözmek için çalıştı.
Akash Agarwal

1
Bu cevap benim için güncellememi çözdühttp://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
mvw

ve oldukça muhtemeldir, sisteminiz için daha önce anahtar üretmediniz. bu nedenle yukarıdaki adımları izlemeden önce - gpg --gen-key (referanslar - packaging.ubuntu.com/html/getting-set-up.html )
parasrish

35

Anahtarı alıp almanız gerekir.

Bir PPA'dan anahtarı almak için, PPA'nın Launchpad sayfasını ziyaret edin. Launchpad'deki her bir PPA sayfasında 'Bu PPA ile ilgili teknik detaylar' (1) üzerine tıkladıktan sonra bu linki (2) bulacaksınız:

görüntü 1

Takip edin ve anahtar ID bağlantısına tıklayın (3):

resim 2

Sayfayı kaydedin, bu sizin anahtar dosyanızdır.


Şimdi içe aktarma zamanı:

  • Applications > Software Center,
  • Edit > Software sources...,
  • Şifrenizi girin,
  • Git Authenticationsekmesi ve tıklayın Import Key File...nihayet,
  • Kaydedilen anahtar dosyasını seçin ve tıklayın OK.

1
Vaktinizi kaybetmeyin, aşağıdaki cevabı görün.
Felipe

5
@FelipeMicaroniLalli, soru terminali değil GUI kullanarak bir pubkey eklemek nasıldı , bu yüzden bu cevap mükemmeldi.
Chris Woods,

Bunu şimdi y-ppa-manager (aynı zamanda bir gui uygulaması) ile yapmak çok daha kolay ve daha hızlı. Aşağıdaki cevaba bakınız.
monotasker

1
Tamam, peki ya depo ubuntu ppa değilse. Örneğin Intel, video donanım sürücüleri için kendi depolarını download.01.org
yayınladı

Büyük adım adım kılavuz, çok teşekkürler! Anahtar ekleyemeyen biri için gerçekten çok yardımcı oldu apt-key.
Roy Ling

12

apt /etc/apt/trusted.gpg.d dosyasında sadece 40 anahtar kullanabilir. 41 tuşa bastığınızda, eksik anahtar (lar) ’ı eklemek için tüm adımları uygulasanız bile" genel anahtar bulunamadı "GPG hatası alırsınız.

Artık kullanmadığınız ppalardan bu dosyada kullanılmamış anahtar olup olmadığını kontrol edin. Hepsi kullanımdaysa, bazı ppa'ları /etc/apt/trusted.gpg.d dosyasındaki ilgili anahtar dosyalarla birlikte çıkarmayı düşünün.

Ayrıca, kullanarak

sudo apt-key adv

Bir güvenlik riski olarak kabul edilir ve tavsiye edilmez siz "gibi bu çeşitli nedenlerle anahtarları Recieving güvenli bir yol değildir olarak bütün güvenlik konseptini zarar (örn: HKP düz metin protokol, kısa ve hatta uzun keyids sahte olabileceği, ... ) ". http://ubuntuforums.org/showthread.php?t=2195579

Eksik anahtar eklemenin doğru yolunun (örneğin 1ABC2D34EF56GH78) olduğuna inanıyorum.

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -

1
Tüm anahtarları /etc/apt/trusted.gpg.d adresinden silmeyi
janot

@mchid Lütfen bu 41 anahtar limitinden bahseden bir belge / url teklifi verebilir misiniz?
SebMa

@SebMa Bağlantı cevabımda yayınlandı ve Debian'da bu limitten etkilenen bir hatayı gösteriyor. İşte bundan bahseden bağlantıdaki asıl gönderiye bir bağlantı: ubuntuforums.org/showthread.php?t=2195579#post_message_12882784 Bu konuda gerçek belgeler olup olmadığından emin değilim, ancak 40 sayısı kullanılmış olabilir çünkü "40 "pek çok farklı dilde" çok "anlamına gelir.
Mchid

@SebMa Ancak, bu cevap sırasında ve bir süre sonra da sınır var veya mevcuttu. Bu 41 tuş sınırını şahsen tecrübe ettim ve bu hatayı önlemek için 40 anahtar varken yeni bir anahtar eklemek için kullanılmayan anahtarları silerek düzelttim.
Mchid


9

WebUpd8 PPA'da paketlenmiş olan ve tek bir .deb indirme işlemi olarak bağlayacağım küçük bir komut dosyası var, böylece tüm PPA'yı eklemek zorunda kalmazsınız - bu da tüm kayıp GPG anahtarlarını otomatik olarak alır.

Launchpad-getkey'leri indirin ve kurun (sürümündeki ~ boşluğu göz ardı edin, Karmic'ten Oneiric'e kadar tüm Ubuntu sürümleriyle çalışır). Kurulduktan sonra bir terminal açın ve şunu yazın:

sudo launchpad-getkeys

Eğer Proxy'yle iseniz, işler biraz daha karmaşık yüzden bakınız olan bu daha fazla bilgi için


1
Web sitenizde sunulan bu programı gördüğümden beri, şimdi yaptığım gibi. Bununla birlikte, sorunun amacı, grafiksel bir şekilde nasıl yapılacağını bilmek oldu.
Agmenor

Launchpad-getkeys betiği şimdi Y-PPA yöneticisi programına entegre edildi. launchpad.net/~webupd8team/+archive/y-ppa-manager
monotasker

5

Heroku yüklerken de aynı sorunla karşılaştım. Aşağıdaki link sorunumu çözdü -

http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html

NO_PUBKEYSorunu düzelttikten sonra , aşağıdaki sorun kaldı

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>

Bunu düzeltmek için terminalde aşağıdaki komutları yürüttüm:

sudo -i  
apt-get clean  
cd /var/lib/apt  
mv lists lists.old  
mkdir -p lists/partial  
apt-get clean  
apt-get update  

Kaynak - Bunu çözmek için bağlantı


4

apt-transport-httpsYüklediğinizden emin olun :

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

Depo ekle:

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

Linux için Skype'ı yükleyin:

sudo apt-get update 
sudo apt-get install skypeforlinux -y

Kaynak: https://community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-verified-because-the/td-p/4645756


3

Daha genel olarak, aşağıdaki yöntem her depo için çalışmalıdır. Her şeyden önce, program sağlayıcısının web sitesinde yer alan bir metin için aşağıdaki gibi görünen bir arama motorunun yardımı ile:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

Böyle bir metin örneğin http://deb.opera.com adresinde gösterilir . Pasajı kopyalayın, masaüstünde oluşturduğunuz boş bir dosyaya yapıştırın. Bu, anahtar dosyasında sonuçlanır.

Sonra anahtarın ithalatına devam edin:

  • Uygulamalar> Sofware Center
  • Düzenle> Sofware kaynakları ..., şifreyi girin
  • Kimlik doğrulama sekmesinde, 'Anahtar Dosyayı İçe Aktar ...' seçeneğini tıklayın.
  • Kaydedilen anahtar dosyasını seçin ve 'Tamam'ı tıklayın.

Şimdi daha önce oluşturulan anahtar dosyasını kaldırabilirsiniz.


3

İyi! Sonunda yolu buldum!

Tüm yöntemlerin GPG hatasını NO_PUBKEY düzeltmek ve benim için çalışan hiçbir şeyi düzeltmek için test ettim.

/Etc/apt/trusted.gpg.d klasörünün tüm içeriğini sildim

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

Ve Y-PPA-Manager yöntemini kullanıyorum çünkü tüm pubkey'leri manuel olarak (çok fazla) oluşturmak için çok tembelim: http://www.unixmen.com/fix-w-gpg-error-no_pubkey-ubuntu/

sudo apt-get update komutunu çalıştırın ve son olarak hepsi harika çalışıyor! Tanklar!

Tabanlı Kaynak: sonrası # 17 https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540


Bu benim için de işe yarayan tek şeydi. Muhtemelen bir yerlerde bozuk bir anahtar dosya?
donnek

0

DynDNS'in Updater istemcisinde de aynı problem vardı.

Anlaşılan anahtarların süresi dolmuş.

Yazılımı yeniden yükleme ( .debweb sitesinden yeni bir indirme , ardından yeniden yüklemek için Software Center'ı kullanma) sorunu çözdü.

Referans için hata mesajı:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
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.