Wie behebe ich fehlende GPG-Schlüssel?

154

Ich habe gerade Ubuntu 12.04 installiert und ein paar Repos hinzugefügt, und als ich das tat apt-get update, fehlte mir der GPG-Schlüssel.

Der folgende Befehl scheint bei mir nicht zu funktionieren:

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

Wie kann das Problem behoben werden?

Fih
quelle
1
Es wäre gut, wenn Antworten auf diese Frage enthalten, warum dieser Fehler überhaupt auftritt und was zu tun ist, um ihn in Zukunft zu vermeiden.
Flimm
Ich habe mein Problem mit Y-ppa-manager gelöst. Vielen Dank an Ashu für die Lösung!
1
Detaillierte Lösung mit Screenshots opensourceforgeeks.blogspot.in/2013/04/…
Aniket Thakur
1
Siehe auch
Wilf

Antworten:

222

Ich mochte diese Lösung, lade die fehlenden Schlüssel erneut vom Ubuntu-Schlüsselserver herunter.

Für Ubuntu

In meinem Fall

 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

Hier ist der Befehl zum Hinzufügen des fehlenden Schlüssels, der in der Fehlermeldung erwähnt wird.

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

Also nehme ich den fehlenden Schlüssel 2EA8F35793D8809Aund bitte den keyserver.ubuntu.com, ihn der Liste der Schlüssel hinzuzufügen, die ich in apt habe.

Für Linux Mint
Ihr Schlüsselserver ist etwas anderskeyserver.linuxmint.com

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

Alternative Schlüsselserver zum Ausprobieren
keyserver.ubuntu.com

Nelaaro
quelle
1
askubuntu.com/a/136735/10998 hat bei mir nicht funktioniert.
Nelaaro
5
Hat dies Auswirkungen auf die Sicherheit? Ich lade im Grunde genommen nur einen öffentlichen Schlüssel über http herunter, oder?
Ajedi32
1
@iamcreasy, um Ubuntu-Installationen zu beweisen, dass die von Ihnen installierten Pakete sicher und frei von Malware sind. Jedes Paket wird vom Ubuntu-Schlüsselserver signiert. Ihr Installationsprogramm überprüft daher, ob das zu installierende Paket von einer vertrauenswürdigen und überprüften Quelle stammt. Ich habe keine wirklich gute Dokumentation dazu gefunden, aber das könnte helfen [gpg doc] ( help.ubuntu.com/community/… )
nelaaro
1
Ich habe eine Funktion erstellt, um benötigte Schlüssel hinzuzufügen. adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}Und um doppelte oder problematische Schlüssel zu entfernen, verwende ich dazu:grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo
1
Ich empfehle --keyserver ha.pool.sks-keyservers.net. Es handelt sich um einen Pool von Schlüsselservern mit hoher Verfügbarkeit, wodurch sich die Wahrscheinlichkeit, den gewünschten Schlüssel zu erhalten, erheblich erhöht.
Robin wie der Vogel
21

Es gibt eine Software mit dem Namen Y PPA managerEs kann helfen, GPG-Schlüsselfehler zu beheben.
Y PPA-Manager

Installieren -

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

Sobald Sie es installiert haben, starten Sie es advanceund wählen Sie "Alle fehlenden GPG-Schlüssel importieren".

Ashu
quelle
2
Sie müssen diesem Befehl sudo hinzufügen! sudo apt-get...
Am
Das hat auch bei mir funktioniert und ich bin sehr beeindruckt von der sauberen, einfach zu bedienenden Oberfläche von Y PPA Manager. Es war ein schöner Fund, Danke Ashu.
CoalaWeb
Ich habe getan, was Sie gesagt haben, aber nichts ist passiert. Ich meine, ich kann die App nirgendwo im Menü finden.
Cristiana Nicolae
@CristianaNicolae Nach der Installation finden Sie Y PPA Manager unter Anwendungen> Systemprogramme.
Ashu
Sorry Ashu, ich habe nachgesehen und nachgeprüft. Ich kann es dort immer noch nicht sehen. Es scheint, dass es irgendwo im System installiert ist, aber aus bestimmten Gründen wird es nirgendwo im Menü angezeigt.
Cristiana Nicolae
14

Der automatische Download mit apt-key adv --recv-keysfunktioniert möglicherweise nicht hinter einer Firewall.

Öffnen Sie in diesem Fall die Webseite von Ubuntu Key Server in Ihrem Webbrowser und suchen Sie nach der Zeichenfolge 0x<hexadecimal code of your missing key>.

Öffne den Link im Pub- Bereich. Speichern Sie den Schlüsselinhalt (von -----BEGIN PGP PUBLIC KEY BLOCK-----bis -----END PGP PUBLIC KEY BLOCK-----) als Datei.

Dann renne:

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

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

Melebius
quelle
12

Geben Sie zuerst den folgenden Befehl in das Terminal ein

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

Aktualisieren Sie dann Ihr System, indem Sie den folgenden Befehl in das Terminal eingeben

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

Danach sollte es keine Fehler geben und alles sollte gut funktionieren.

Bharat
quelle
Danke für die Antwort. Die Lösung für mein Problem war um einiges einfacher: sudo suTippen Sie, bevor Sie meinen obigen Befehl
eingeben
Das hätte Ihnen zwar geholfen, sudo suist aber keineswegs der richtige Ansatz - in diesem Fall sudo -shätte man getan, was man brauchte.
guntbert
Ich denke du sudo rm /var/lib/apt/lists/* -rf
meintest
9
Beides zu benutzen sudound rmist gefährlich. Beides zu benutzen rmund *ist gefährlich. Verwenden Sie die drei im gleichen Befehl und ein Hai wird Sie oder Ihre Dateien beißen.
JB.
Das funktioniert bei mir nicht.
WiSaGaN
9

Für Ubuntu 12.04 Precise: Permanente Lösung

zu dieser Fehlermeldung, die nach dem Hinzufügen eines neuen Repositorys und dem Aktualisieren der Repository-Liste auftritt. Dies liegt an einem Server, dessen Adresse nicht mehr gültig ist. Ändern Sie einfach die Adresse in eine gute.

  1. Öffnen Sie die Datei ~/.gnupg/gpg.confmit einem Texteditor.

    Im Terminal: gedit ~/.gnupg/gpg.conf

  2. Suchen Sie dann in dieser Datei die folgende fette Linie (116. Linie) (die standardmäßig wie folgt lauten sollte):

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

  3. Fügen Sie dann die folgende fette Linie hinzu, um schließlich das folgende Ergebnis zu erhalten:

    (Fügen Sie der zweiten Zeile ein # hinzu, um die alte Adresse zu kommentieren.)

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

  4. Speichern Sie die Datei und versuchen Sie erneut zu aktualisieren:

    Im Terminal: sudo apt-get update

blitzter47
quelle
7

Basierend auf der Antwort von 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

Das Skript speichert alle Fehler in einer temporären Datei und durchläuft sie dann in einer Schleife, wobei die fehlenden Schlüssel importiert werden.

Zafarella
quelle
6

Der einfachste Weg ist mit Y PPA MAnager

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

Öffnen Sie Y PPA Manager über Dash

Bildbeschreibung hier eingeben

Geben Sie Ihr Admin-Passwort ein

Bildbeschreibung hier eingeben

Doppelklicken Sie auf Erweiterte Option

Bildbeschreibung hier eingeben

Klicken Sie auf Versuch, alle fehlenden GPG-Schlüssel zu importieren

Bildbeschreibung hier eingeben

Klicken Sie auf OK, um es zu beheben

Qasim
quelle
4

Geben Sie zuerst den folgenden Befehl in das Terminal ein

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

Aktualisieren Sie dann Ihr System, indem Sie den folgenden Befehl in das Terminal eingeben

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

Danach sollte es keine Fehler geben und alles sollte gut funktionieren.

DaniilPiter
quelle
2

Was für mich funktioniert hat war, zuerst den Schlüssel zu löschen und dann neu zu installieren. Um das zu erreichen, habe ich folgendes getan:

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

Löschen mit

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

Installieren Sie es dann erneut, indem Sie Folgendes eingeben

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

Ich bin auf dasselbe Problem gestoßen, als ich ein ppa ( ppa:nathandyer/vocal-stable) hinzufügte, wodurch meine Repositorys beschädigt wurden. Ich wurde vom Autor von Web Upd8 darauf hingewiesen, wie ich versuchen kann, dies zu beheben. Hier sind seine Schritte, die mir geholfen haben.

Sichern Sie Ihre .gpgSchlüssel für den Fall, dass etwas schief geht.

Erstellen wir einen Ordner, in dem wir unser Backup ablegen.

  • mkdir ~/gpg-backups

    Dadurch werden alle Dateien im /etc/apt/trusted.gpg.d/Ordner gesichert.

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

Jetzt werden wir alle .gpgSchlüssel entfernen .

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

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

  • sudo rm /etc/apt/trustdb.gpg

Klicken Sie in Software & Updates auf der Registerkarte "Authentifizierung" auf "Standard wiederherstellen"

Installieren Sie den y-ppa Manager, um alle fehlenden GPG-Schlüssel zu importieren

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

Hinweis :

blade19899
quelle
1
Eine Zeile scheint einen Fehler zu enthalten, muss sein sudo rm /etc/apt/trusted.gpg.d/*. Das Weglassen der *EOL ist nicht möglich, da Sie nicht leere Verzeichnisse nicht mit entfernen können, rmwenn die -rOption nicht angegeben ist. - Ah, und Sie können 2 Vögel mit 1 Stein an der Linie töten sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/. Denn wenn Sie verschieben die Datei, müssen Sie nicht rmdie Quelldatei danach.
Syntaxfehler
1

Ich wollte solche Fehler automatisch in einem Bash-Skript beheben. Für alle Interessierten sollte dies der Trick sein:

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
user2304170
quelle
0

Wenn Sie so etwas haben:

# 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

Zunächst einmal versuchen:

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

Die Ausgabe des letzten Befehls kann sein:

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

Sie müssen also /etc/apt/trusted.gpg.d/nicht verwendete Schlüssel entfernen und dann apt-key advund wiederholenaptitude update

Ipeacocks
quelle
0

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

Towfiqpiash
quelle
-1

Dieses Problem trat bei der Installation von 12.04 mit deutschen Einstellungen auf. In der Repository-Liste werden dann standardmäßig deutsche Spiegel-Repositorys verwendet. In diesem Fall können Sie die Repository-Liste bearbeiten und alle deutschen Spiegel-Repositorys auf die Ubuntu-Standard-Repositorys ändern.

Sie können folgende Methode anwenden:

sudo nano /etc/apt/sources.list

Suchen und Ersetzen in Nano mit Alt-r

Suchen (zum Ersetzen): /de.

Ersetzen mit: /

Alle ersetzen (drücken A)

Datei speichern Ctrl-x

Aktualisieren Sie dann Ihr System, indem Sie den folgenden Befehl in das Terminal eingeben:

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

Danach sollte es keine Fehler geben und alles sollte gut funktionieren.

Taufan
quelle
2
Dies beantwortet die Frage der OPs nicht wirklich, besonders wenn man bedenkt, dass sie keine Quellen verwendet haben.
Kevin Bowen