Wie behebe ich den GPG-Fehler "NO_PUBKEY"?


364

Ich habe einige zusätzliche Repositorys mit dem Software Sources-Programm hinzugefügt. Aber wenn ich die Paketdatenbank neu lade, erhalte ich eine Fehlermeldung wie die folgende:

W: GPG-Fehler: http://ppa.launchpad.net trusty InRelease: Die folgenden Signaturen konnten nicht überprüft werden, da der öffentliche Schlüssel nicht verfügbar ist: NO_PUBKEY 8BAF9A6F

Ich weiß, dass ich das Problem mit apt-keyeinem Terminal beheben kann , wie aus der offiziellen Ubuntu-Dokumentation hervorgeht. Aber ich hätte es gerne grafisch gemacht. Gibt es eine Möglichkeit, dies ohne Verwendung eines Terminals zu tun?



'Ein Mittelwert'? Neugierig, was du damit gemeint hast.
Michael Scheper

1
Sie können diesen SO-Thread auf Lösung überprüfen . Link zu verwandter Seite
Aniket Thakur

@MichaelScheper 'Gibt es ein Mittel, um ein Terminal nicht zu öffnen?' = ~ 'Gibt es eine Möglichkeit ohne Terminal?'
Wilf

@Wilf: Oh! Ich habe nicht vor, Grammatik auszupicken, aber es hat mich verwirrt. Aus der soeben überprüften Referenz geht hervor, dass "means" ein singuläres Substantiv ist und das, das Sie gemeint haben. dictionary.cambridge.org/dictionary/english/means Aber wenn Sie und Agmentor eine abweichende Form von Englisch verwenden, in der die Grammatik in der Frage korrekt ist, würde ich gerne einen Verweis darauf sehen, nur weil ich daran interessiert bin diese Art von Ding. ☺
Michael Scheper

Antworten:


211

Am einfachsten geht das jetzt mit Y-PPA-Manager (der das launchpad-getkeysSkript jetzt mit einer grafischen Oberfläche integriert).

  1. Um es zu installieren, fügen Sie zuerst das webupd8-Repository für dieses Programm hinzu:

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. Aktualisieren Sie Ihre Softwareliste und installieren Sie den Y-PPA-Manager:

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. Führen Sie den y-ppa-manager aus (dh geben Sie ein y-ppa-managerund drücken Sie die Eingabetaste).

  4. Wenn das Hauptfenster von y-ppa-manager angezeigt wird, klicken Sie auf "Erweitert".

  5. Wählen Sie aus der Liste der erweiterten Aufgaben "Versuchen Sie, alle fehlenden GPG-Schlüssel zu importieren" und klicken Sie auf "OK".

    Sie sind fertig! Wie im Warndialogfeld angegeben, kann es einige Zeit dauern (bei mir etwa 2 Minuten), je nachdem, wie viele PPAs Sie haben und wie schnell Ihre Verbindung ist.


18
Auf einem Webserver nicht wirklich nützlich, da hiermit X11 installiert wird. Wenden Sie diese Methode nicht an, wenn Sie sich auf einer Server-Edition befinden. Überprüfen Sie die Antwort von karthick87!
Goncalotomas

2
Ermöglicht dies die Überprüfung der importierten Schlüssel, oder importieren Sie einfach alles blind (und vertrauen daher jedem, der über eine PPA verfügt)?
Paŭlo Ebermann

2
Sie importieren (und vertrauen) die Schlüssel für jede PPA, die Sie Ihrem System hinzugefügt haben. Die Annahme ist, dass Sie diesen PPAs vertrauen und sie ausgecheckt haben, bevor Sie sie über apt hinzugefügt haben.
Monotasker

6
Diese Antwort ist bei weitem einfacher und erfordert tatsächlich weniger Befehle als diese "grafische" Antwort.
Jpaugh

1
Die Frage stellte sich jedoch nach einer grafischen Methode.
Monotasker

556

Führen Sie die folgenden Befehle im Terminal aus

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

Wo <PUBKEY>ist Ihr fehlender öffentlicher Schlüssel für das Repository, z 8BAF9A6F.

Dann aktualisieren

sudo apt-get update

ABWECHSELNDE METHODE:

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

Beachten Sie apt-key, dass Sie dem System beim Importieren eines solchen Schlüssels mit mitteilen, dass Sie dem Schlüssel vertrauen, den Sie importieren, um die von Ihrem System verwendete Software zu signieren. Tun Sie dies nur, wenn Sie sicher sind, dass der Schlüssel wirklich der Schlüssel des Paketverteilers ist.


2
@ Naruto Das ist normal. Dies bedeutet, dass sich die Liste auf dem Server nicht geändert hat.
ζ--

9
Sie können einfach einen NO_PUBKEYWert als Schlüsselparameter übergeben. Zum Beispiel GPG-Fehler [...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3766223989993A70
SMMousavi

23
8BAF9A6F <- Woher hast du diese Nummer?
Olivier Lalonde

13
Die Nummer 8BAF9 ... ist das, was Sie im ursprünglichen Fehler sehen. Es wäre so etwas wie NO_PUBKEY 8BAF ...
Alex

9
Wenn jemand Daten zwischen mir und dem Repository manipulierte und signierte Daten ersetzte, musste ich den verwendeten Schlüssel mehr oder weniger blind hinzufügen. Wie wird nun überprüft, ob der Schlüssel der richtige ist?
mc0e

43

Dies passiert, wenn Sie keinen geeigneten öffentlichen Schlüssel für ein Repository haben.

Um dieses Problem zu lösen, verwenden Sie diesen Befehl:

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

Hiermit wird der Schlüssel vom Ubuntu Key Server abgerufen. Und dann das:

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

Damit wird der Schlüssel zu passenden vertrauenswürdigen Schlüsseln hinzugefügt.

Die Lösung finden Sie hier & hier & hier .


4
Wenn hkp: //keyserver.ubuntu.com nicht funktioniert, verwenden Sie diesen pgpkeys.mit.eduServer.
RajaRaviVarma

1
Diese Antwort hat mein Problem mit dem Kylin-Repository gelöst. Die Eingabemethode sogou pinyin fügte Quelle zu meinem /etc/apt/sources.list.d/Ordner hinzu, importierte aber anscheinend keinen gpg-Schlüssel. Gute Antwort, einfach und auf den Punkt, +1!
Sergiy Kolodyazhnyy

1
Vielen Dank! Arbeitete für mich, um das Problem mit dem PHP-Repository zu lösen.
Akash Agarwal

1
Diese Antwort hat mein Update fürhttp://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
mvw 21.02.18

und es ist durchaus möglich, dass Sie den Schlüssel für Ihr System noch nicht generiert haben. Bevor Sie die obigen Schritte gpg --gen-key
ausführen, müssen Sie

35

Sie müssen den Schlüssel abrufen und importieren.

Um den Schlüssel von einer PPA zu erhalten, besuchen Sie die Seite Launchpad der PPA. Auf jeder PPA-Seite im Launchpad finden Sie diesen Link (2), nachdem Sie auf "Technische Details zu diesem PPA" geklickt haben (1):

Bild 1

Folgen Sie ihm und klicken Sie auf den Link zur Schlüssel-ID (3):

Bild 2

Speichern Sie die Seite, dies ist Ihre Schlüsseldatei.


Jetzt ist es Zeit, es zu importieren:

  • Applications > Software Center,
  • Edit > Software sources...,
  • Geben Sie Ihr Passwort ein,
  • Gehen Sie zur AuthenticationRegisterkarte und klicken Sie Import Key File...schließlich auf
  • Wählen Sie die gespeicherte Schlüsseldatei aus und klicken Sie auf OK.

1
Verliere nicht deine Zeit, sieh die Antwort unten.
Felipe

5
@FelipeMicaroniLalli, die Frage war, wie man einen Pubkey über die GUI hinzufügt, nicht über das Terminal. Diese Antwort war also perfekt.
Chris Woods

Es ist viel einfacher und schneller jetzt dieses mit y-ppa-Manager zu tun (auch eine GUI - Anwendung). Siehe meine Antwort unten.
Monotasker

1
OK, aber was ist, wenn das Repository kein Ubuntu-PPA ist? Beispielsweise hat Intel unter download.01.org
mc0e

Tolle Schritt-für-Schritt-Anleitung, vielen Dank! Sehr hilfreich für jemanden, der den Schlüssel nicht über hinzugefügt hat apt-key.
Roy Ling

12

apt kann in /etc/apt/trusted.gpg.d nur 40 Schlüssel verarbeiten. Bei 41 Schlüsseln wird der GPG-Fehler "Kein öffentlicher Schlüssel gefunden" angezeigt, auch wenn Sie alle Schritte zum Hinzufügen der fehlenden Schlüssel ausgeführt haben.

Überprüfen Sie, ob in dieser Datei nicht verwendete Schlüssel von ppa (s) enthalten sind, die Sie nicht mehr verwenden. Wenn alle verwendet werden, sollten Sie einige ppa (s) zusammen mit den entsprechenden Schlüsseldateien in /etc/apt/trusted.gpg.d entfernen

Darüber hinaus mit

sudo apt-key adv

Wird als Sicherheitsrisiko angesehen und wird nicht empfohlen, da Sie " das gesamte Sicherheitskonzept untergraben " , da dies aus verschiedenen Gründen keine sichere Methode zum Empfangen von Schlüsseln ist (z. B .: hkp ist ein Klartextprotokoll, kurze und sogar lange Schlüssel können gefälscht werden, ... ) ". http://ubuntuforums.org/showthread.php?t=2195579

Ich glaube, der richtige Weg zum Hinzufügen fehlender Schlüssel (zum Beispiel 1ABC2D34EF56GH78) ist

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

1
Ich fand es einfacher, nur alle Schlüssel aus /etc/apt/trusted.gpg.d zu löschen und dann akzeptierte Antwort gehen askubuntu.com/a/386003/284664
Janot

@mchid Kannst du bitte ein Dokument / eine URL zitieren, das / die über dieses Limit von 41 Schlüsseln spricht?
SebMa

@SebMa Der Link ist in meiner Antwort veröffentlicht und verweist auf einen Fehler in Debian, der von diesem Limit betroffen war. Hier ist ein Anker auf den tatsächlichen Beitrag innerhalb der Verbindung , die dies erwähnt: ubuntuforums.org/showthread.php?t=2195579#post_message_12882784 Ich bin nicht sicher , ob tatsächlich Dokumentation zu diesem Thema vorhanden ist, aber die Zahl 40 verwendet wurde , weil „40 "übersetzt zu" viel "in vielen verschiedenen Sprachen.
27.

@SebMa Das Limit existiert oder existierte zum Zeitpunkt dieser Antwort und auch für einige Zeit danach. Ich persönlich habe dieses Limit von 41 Schlüsseln erlebt und es behoben, indem nicht verwendete Schlüssel gelöscht wurden, um einen neuen Schlüssel hinzuzufügen, wenn bereits 40 Schlüssel vorhanden waren, um diesen Fehler zu vermeiden.
27.


9

In der WebUpd8-PPA ist ein winziges Skript enthalten, das als einzelner .deb-Download verlinkt wird, sodass Sie nicht die gesamte PPA hinzufügen müssen - wodurch automatisch alle fehlenden GPG-Schlüssel importiert werden.

Laden Sie Launchpad-getkeys herunter und installieren Sie es (ignorieren Sie das ~ natty in seiner Version, es funktioniert mit allen Ubuntu-Versionen von Karmic bis Oneiric). Nach der Installation öffnen Sie ein Terminal und geben Folgendes ein:

sudo launchpad-getkeys

Wenn Sie hinter einem Proxy sind, dann sind die Dinge ein wenig komplizierter , so sehen diese für weitere Informationen


1
Es ist in der Tat so, wie ich es jetzt tue, da ich dieses Programm auf Ihrer Website präsentiert habe. Trotzdem war das Ziel der Frage, zu wissen, wie man es auf grafische Weise macht.
Agmenor

Das Skript launchpad-getkeys ist jetzt in das Programm Y-PPA-manager integriert. launchpad.net/~webupd8team/+archive/y-ppa-manager
monotasker

5

Ich hatte das gleiche Problem bei der Installation von Heroku. Der Link unten hat mein Problem gelöst -

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

Nach dem Beheben des NO_PUBKEYProblems blieb das folgende Problem bestehen

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

Um das Problem zu beheben, habe ich die folgenden Befehle im Terminal ausgeführt:

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

Quelle - Link, um es zu lösen


4

Stellen Sie sicher, dass Sie Folgendes apt-transport-httpsinstalliert haben:

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

Repository hinzufügen:

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 

Installieren Sie Skype für Linux:

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

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


3

Im Allgemeinen sollte die folgende Methode für jedes Repository funktionieren. Suchen Sie zunächst mit Hilfe einer Suchmaschine auf der Website des Programmanbieters nach einem Text, der wie folgt aussieht:

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

Ein solcher Text wird beispielsweise auf http://deb.opera.com angezeigt . Kopieren Sie die Passage und fügen Sie sie in eine leere Datei ein, die Sie auf Ihrem Desktop erstellt haben. Dies ergibt die Schlüsseldatei.

Fahren Sie dann mit dem Import des Schlüssels fort:

  • Anwendungen> Sofware Center
  • Bearbeiten> Software-Quellen ..., Passwort eingeben
  • Klicken Sie auf der Registerkarte Authentifizierung auf 'Schlüsseldatei importieren ...'.
  • Wählen Sie die gespeicherte Schlüsseldatei und klicken Sie auf 'Ok'.

Sie können jetzt die zuvor erstellte Schlüsseldatei entfernen.


3

Gut! Ich habe endlich den Weg gefunden!

Ich habe alle Methoden getestet, um den GPG-Fehler NO_PUBKEY zu beheben, und nichts funktioniert für mich.

Ich habe den gesamten Inhalt des Ordners /etc/apt/trusted.gpg.d gelöscht

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

Und ich benutze die Y-PPA-Manager- Methode, weil ich zu faul bin, alle Pubkeys manuell zu erstellen (zu viele): http://www.unixmen.com/fix-w-gpg-error-no_pubkey-ubuntu/

Führe sudo apt-get update erneut aus und alles funktioniert jetzt großartig! Panzer!

Basierend auf Quelle: Beitrag Nr. 17 auf https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540


Dies war das einzige, was auch für mich funktionierte. Vermutlich eine beschädigte Schlüsseldatei?
donnek

0

Ich hatte das gleiche Problem mit DynDNSs Updater-Client.

Es stellte sich heraus, dass es nur abgelaufene Schlüssel war.

Die Neuinstallation der Software (Herunterladen einer neuen Software .debvon der Website und anschließende Neuinstallation über das Software Center) behebt das Problem.

Fehlermeldung als Referenz:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.