Zeitüberschreitung beim Hinzufügen eines öffentlichen GPG-Schlüssels

67

Ich versuche, einen öffentlichen Schlüssel für die Installation eines Programms mit CPG hinzuzufügen. Aber ich bin ziemlich neu darin, aber jeder Befehl, den ich fand, gab mir den gleichen Fehler:

gpg --keyserver keyserver.ubuntu.com --recv-keys 94558F59
gpg: requesting key 94558F59 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

Wie ist das möglich? Es scheint, dass ich hinter einer Art Blockade stecke, die es unmöglich macht, eine Verbindung zum Schlüsselserver herzustellen. Ich habe mir viele OP-Fragen angesehen und alle Befehle ausprobiert, die ich finden konnte, aber nichts hat funktioniert. Hatte jemand dieses Problem schon mal?

Sander Van der Zeeuw
quelle
Haben Sie versucht, einen anderen Keyserver zu verwenden? hkp: //subkeys.pgp.net oder hkp: //pgp.mit.edu: 11371
jasonwryan
@jasonwryan Ich habe versucht, die pgp.mit.edu aber ohne hkp: // ist die Verwendung von so wichtig? Das glaube ich nicht, aber es lohnt sich, es für mich zu versuchen
Sander Van der Zeeuw
Verwenden Sie die vollständige Adresse und den alternativen Port ...
Jasonwryan
@jasonwryan habe ich noch?: pgp.mit.edu: Verbindungszeitüberschreitung gpgkeys: HTTP-Abruffehler 7: Verbindung konnte nicht hergestellt werden: Verbindungszeitüberschreitung gpg: Es wurden keine gültigen OpenPGP-Daten gefunden. gpg: Gesamtzahl verarbeitet: 0
Sander Van der Zeeuw
3
gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59arbeitete für mich ...
Jasonwryan

Antworten:

113

Dies wird normalerweise dadurch verursacht, dass Ihre Firewall den Port blockiert 11371. Sie können den Port in Ihrer Firewall entsperren. Falls Sie keinen Zugriff auf die Firewall haben, können Sie entweder:

  1. Erzwinge die Verwendung von port 80statt11371

    gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94558F59
  2. Alternative

    • Suchen und öffnen Sie den Schlüssel auf dem Schlüsselserver.
    • Kopieren Sie den Inhalt in eine Textdatei.
    • Gehen Sie zu System> Einstellungen> Softwarequellen> Authentifizierung> Schlüssel hinzufügen und wählen Sie die erstellte Textdatei aus. Versuchen Sie für Ubuntu 14.04 und höher Folgendes: Software Center -> Bearbeiten -> Softwarequellen -> Authentifizierung -> Schlüsseldatei importieren
Tutak
quelle
5
gpg --import key.txtwenn Sie über die Befehlszeile importieren müssen.
Banjer
1
sks-keyservers.net/i zum Herunterladen des Schlüssels FYI
Lakshmi Narayanan
2
upvote für alternative wege! Ab Ubuntu 14.04 wird es vonSoftware Center -> Edit -> Software Sources -> Authentication -> Import key file
Roy Ling
Dies hat mein Problem mit der Installation der Schlüssel für rvm behoben. Der folgende Anruf hing für mich: Anforderung des Schlüssels D39DC0E3 vom HKP-Server keys.gnupg.net
mdgrech
4
"Suchen und öffnen Sie den Schlüssel vom Schlüsselserver." Was niemand erwähnt, ist, wie das gemacht wird. In meinem Fall ist der fragliche Schlüssel auf gpg.mit.edu. Okay, einfach, gehe zu pgp.mit.edu und füge den Schlüssel in das Search StringFeld ein! Falsch. Sie müssen das magische Geheimnis kennen: Stellen Sie den Schlüssel voran mit 0x. Wenn der Schlüssel ist 0F571F6C, müssen Sie suchen 0x0F571F6C, was in keiner Weise offensichtlich ist.
Ben Johnson
19

sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys SOMEKEY

Victor Piousbox
quelle
6
sudoist nicht notwendig und
ansonsten
4
Ich habe gerade vor einer Stunde daran gearbeitet, und das Hinzufügen dieser Zeile hat das Problem für mich gelöst. Es gibt den Unterschied, dass ich Port 80 explizit spezifiziere. Das Protokoll gebe ich auch explizit an. Sie mögen Recht haben, dass sudo nicht benötigt wird, aber meine Antwort enthält ein paar relevante Informationen, finden Sie nicht auch? Ach ja, deine Antwort ist auch richtig.
Victor Piousbox
5
Entfernen Sie das Sudo und die Antwort ist richtig.
Jasonwryan
4
Notwendig, um Schlüssel von einem öffentlichen Keyserver zu erhalten? Ich glaube nicht ...
Jasonwryan
2
Das Hinzufügen von hkp: //, wie in dieser Antwort angegeben, funktioniert bei mir.
Barryhunter
9

Das hat bei mir funktioniert:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv-keys AKEYXXX
eltoro56
quelle
Ich liebe dich Mann !
Yasser Sinjab
7

Beim Versuch, einen GPGSchlüssel hinter einem Proxy hinzuzufügen, ist das gleiche Problem aufgetreten . Die Lösung für mein Problem bestand darin , --keyserver-optionsden folgenden Befehl hinzuzufügen :

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY
Alex.Bai
quelle
1

Versuchen Sie, Ihren Schlüssel von einem anderen Server zu beziehen (funktioniert für mich):

gpg --keyserver hkp://keys.gnupg.net --recv-keys 94558F59

oder

gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59
installero
quelle
1

Ich habe mein Problem behoben, indem ich den folgenden Befehl ausgeführt habe:

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys *somekey*

Hadi Rasekh
quelle
0

Ich sehe dies auf einer von zwei identischen Boxen, auf denen Ansible Deployments auf einem Ubuntu 14.04-Image ausgeführt werden. In der Tat hatte es zuvor funktioniert, app-infra-1aber irgendwann begann es zu scheitern. Die Tatsache, dass es bei der app-infra-2Neuerstellung erfolgreich war, deutet darauf hin , dass es sich um eine Beschädigung app-infra-1oder einen Fehler bei der Erkennung und Meldung von handelt apt-key adv.

Ich habe versucht, den Schlüssel mit zu löschen apt-key del, erhalte aber weiterhin den gleichen Fehler.

changed: [app-infra-2] => {"changed": true, "item": "", "repo": "ppa:webupd8team/java", "state": "present"}
failed: [app-infra-1] => {"cmd": "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886", "failed": true, "item": "", "rc": 2}
stderr: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

stdout: Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.2zqQuFdBjg --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/puppetlabs-keyring.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886

msg: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

Da es sich letztendlich um ein VM handelt, bestand meine Lösung darin, es mit neu zu erstellen vagrant.

darKoram
quelle
0

Für mich war es erforderlich, ENV-Anweisungen in meine Docker-Datei aufzunehmen. Z.B

ENV  http_proxy "http://[yourproxy]:[port]/"
ENV  https_proxy "http://[yourproxy]:[port]/"
TExaaS-Bikepro
quelle