Der gpg-Schlüssel kann mit apt-key hinter einem Proxy nicht hinzugefügt werden

34

Das Hinzufügen eines GPG-Schlüssels über apt-keyschlägt systematisch fehl, da ich zu Ubuntu 17.04 gewechselt habe (ich bezweifle jedoch, dass dies in direktem Zusammenhang steht). Beispiel mit dem Repo-Schlüssel von Spotify :

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
Executing: /tmp/apt-key-gpghome.wRE6z9GBF8/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
gpg: keyserver receive failed: No keyserver available

Gleiches gilt, wenn ich das hkp://Präfix entferne .


Kontext: Ich verwende CNTLM , um mit dem lokalen Unternehmensproxy fertig zu werden. Umgebungsvariablen werden gesetzt (in /etc/environment):

$ env | grep 3128
https_proxy=http://localhost:3128
http_proxy=http://localhost:3128
ftp_proxy=http://localhost:3128

/etc/apt/apt.confist konfiguriert ( aptBefehle funktionieren einwandfrei):

$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://localhost:3128";
Acquire::https::Proxy "http://localhost:3128";
Acquire::ftp::Proxy "http://localhost:3128";

Schließlich scheint der angegebene Keyserver erreichbar zu sein:

$ curl keyserver.ubuntu.com:80
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>SKS OpenPGP Public Key Server</title>
  </head>
  <body>
  [...]

Was kann ich tun ? Ich bin mir nicht mal sicher, wie ich es weiter debuggen soll ...


Dinge, die ich bereits versucht habe, ohne Ergebnis:

  • sudoMit der -EOption (env beibehalten) ausführen
  • laufe apt-key advmit --keyserver-options http-proxy=http://localhost:3128/Option ( Quelle )
  • $ gpg --list-keysaus irgendeinem Grund laufen ( Quelle )
  • benutze einen anderen Keyserver ( --keyserver pgp.mit.edu)
  • entferne das hkp://Teil ( --keyserver keyserver.ubuntu.com:80)

Merkwürdige Sache ist, dass ich nie einen "cntlm" -Eintrag /var/log/syslogbeim Laufen sehe apt-key.

Anto
quelle
Was passiert, wenn Sie versuchen, http://keyserver.ubuntu.com/in Ihrem Browser darauf zuzugreifen ?
Dirkt
Ich habe die Webseite (die gleiche wie die in curlder Ausgabe oben gezeigte )
Anto

Antworten:

50

Normalerweise haben Sie einen Proxy für FTP, HTTP und HTTPS. Ich sehe dort hkp: // als URL; Es sollte also nicht über einen reinen http-Proxy geleitet werden, daher schlägt die Kommunikation fehl.

Verwenden Sie dies stattdessen:

sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://localhost:3128 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886

Für die Systemaktualisierungen empfehle ich beispielsweise die Verwendung eines APT-Proxys apt-cacher-ng.

Eine andere Möglichkeit besteht darin, in der öffentlichen Weboberfläche mit einem Browser, beispielsweise auf Ihrer Arbeitsstation, nach dem gewünschten Schlüssel unter https://keyserver.ubuntu.com zu suchen

Öffnen Sie die Site und Sie erhalten ein Formular. In diesem Fall habe ich den "Search String" "Spotify" verwendet. Wählen Sie dann "Suchen". Es werden mehrere Schlüssel aufgelistet.

Suchen nach der Signatur / dem Fingerabdruck, die / den Sie auf der Ergebnisseite erwähnt haben:

pub  4096R/D2C19886 2015-05-28            
     Fingerprint=BBEB DCB3 18AD 50EC 6865  0906 13B0 0F1F D2C1 9886 

uid Spotify Public Repository Signing Key <[email protected]>
sig  sig3  D2C19886 2015-05-29 __________ 2017-11-22 [selfsig]
sig  sig   94558F59 2015-06-02 __________ __________ Spotify Public Repository Signing Key <[email protected]>

Wir sehen, das ist der Eintrag, der uns interessiert.

Wir klicken also in D2C19886 und erhalten eine Seite mit dem Schlüssel unter https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x13B00F1FD2C19886 .

Public Key Server -- Get "0x13b00f1fd2c19886 "

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: keyserver.ubuntu.com

mQINBFVm7dMBEADGcdfhx/pjGtiVhsyXH4r8TrFgsGyHEsOWaYeU2JL1tEi+YI1qjpExb2Te
TReDTiGEFFMWgPTS0y5HQGm+2P3XGv0pShvgg9A6FWZmZmT+tymA2zvNrdpmKdhScZ52StPL
Fz9wsmXHG4DIKVuzgzuV4YxJ1i2wFtoVp8zT9ORu1BxLZ0IBwTvLRbaQGZ8DwXVAHak9cK91
Ujj6gJ1MJPohZLHH2BjrOjEl/I36jFUjK0AadznNzo08lLAi94qjtheJtuJD3IEOAlCkaknz
6vbEFpszLGlLD7GENMzJk46ObuJuvW5R2PkOU2U8jS0GaUD9Ou/SIdJ6vIdvjSs/ettc2wwd
nbSdadvjovIfvEBRsEVMpRG+42B+DZpJbS9pCb8sxTJtnUy1YViZmG0++FhPGGPGzQYhC/Mz
07lsx5PkC7Kka2FCNmhauxw5deO43Ck181oQVdbt/VxmChzchUJ6N6/uOV5JKm7B9UnDNyqU
Yv6goeLvFnT9ag+FCxiroTrq+dINr6d+XT/cI9WtSagfmhcekwhyfcCgYsFemAOckRifjEGF
MksQlnWkGwWNoKe91KBxjgaJaazSbZRk0dFPSSmfKWaxuTwkR74pbaueyijnQJgHAjfCyzQe
9miN9DitON5l6T2gVAN3Jn1QQmV7tt5GB7amcHf5/b0oYmmRPQARAQABtD5TcG90aWZ5IFB1
YmxpYyBSZXBvc2l0b3J5IFNpZ25pbmcgS2V5IDxvcGVyYXRpb25zQHNwb3RpZnkuY29tPokB
HAQQAQIABgUCVW3SWAAKCRAILM7flFWPWUk5B/wOqqD9/2Do9PyPucfUs/rrP4+M8iJLpv8U
+bX/qHryTTWfpk3YuKL4+c8saHySK4HLGyxd3mdo1XMF351KrxLQvWMSSPbIRV9cSqZROOVn
2ya+3xpWk6t1omLzxtBBMOC4B5qAfWhog7ioAmzQNY5NUz5mqXVP5WbgR/G+GOszzuQUgeu1
Xxxzir3JqWQ0g8mp3EtX7dB76zxkkuTYbeVDPOvtJPn/38d3oSLUI1QJnL8pjREHeE8fO5mW
ncJmyZNhkYd+rfnPk+W0ZkTr59QBIEOGMTmATtNh+x1mo5e2dW91Oj4jEWipMUouLGqbo/gJ
uHFMt8RWBmy+zFYUEPYHiQI+BBMBAgAoAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUC
VWg3sAUJBK3QLQAKCRATsA8f0sGYhl6hEACJ1CrYjaflKKR2Znuh0g0gM89NAwO8AA4+SpkW
HagdGLo7OV/rGB3mlwD4mhaa8CbEnBT/za3jFnT19KsYQWiT21oOX/eo47ITbAspjDZTiXLi
nyAcOJn+q/EFkelROzbVaxZHi6SN5kCEd8KAew8h2jZf8wWqaYVyMPNSqotUhin6YjWsu57B
GixVThoMmxx3udsGAiYqt8buAANWbkUphrvtJuNCKkGym7psnS4Q5EnHPfvbYii9iAfBswX6
nZQlehva7aToN73elYL3opCArAxKAFx70bpGxb7T16KjKzkKS0a4iQ7xdbBGylb+AE/RhICa
+RM5tma2YnB3pZvFM/n0BNeYReCgvxkl1rqrB1KxmFHfGqjLkb2YAZ5RYnP3gEt+nbEWxL8F
O0Bhakn1RB3NqTC2oiQAUfh+66yUawUNkHRHlGAEzZAxvpfnf0hSJp734lyQZJs+zqXUAXa2
UmEZ6se62PgZRQIz5IbAVxSiGz4xIZs1yS36N2vZ34LFJa9o/HVk5OfpqZM0zjWwQIQN2b4O
BizL5r4h2Mi5BHUEyYMsDZn+txoJjPPYLolRlf31sqi5MJE+cbOAXSn8PC9k4i+hrbfqFzts
47+6xgCH3aXbhUkJh1CH/0/qEXfTPYTyayijm4rdvSBczzEORWGT5E38oV9h1eUqp4nVPg==
=/qip
-----END PGP PUBLIC KEY BLOCK-----

Sie schneiden zwischen der Zeile, die mit "----- BEGIN" beginnt, und der Zeile, die mit "----- END" endet, einschließlich dieser Zeilen, und fügen sie in eine Datei ein, beispielsweise spotify.pgpauf dem gewünschten Server, den Sie importieren möchten Schlüssel. (nicht von hier aus ausschneiden, da ich beim Formatieren vor jeder Zeile 4 Leerzeichen eingefügt habe)

Zum Schluss importieren Sie den Schlüssel auf den Server:

$sudo apt-key add spotify.pgp
OK
Rui F Ribeiro
quelle
@Anto hat es funktioniert?
Rui F Ribeiro
1
Hallo Rui, in der Tat funktioniert diese "manuelle" Methode und so habe ich sie in der Zwischenzeit "vorübergehend" gelöst. Anscheinend wird diese vorübergehende Lösung nicht vorübergehend bleiben :( Aber trotzdem vielen Dank.
Anto
4

Hier ist eine Lösung, die http über curl verwendet, anstatt zu versuchen, apt-key oder gpg als Proxy zu verwenden:

curl -sSL \
'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886' \
| sudo apt-key add -

Diese Methode sollte anstelle der apt-keyEinstellungen für Befehlszeilen- oder http_proxy- oder https_proxy-Umgebungsvariablen verwendet werden (die in den neuesten Versionen von deaktiviert sind apt-key).

Dan Anderson
quelle
-1

Sie können den Keyserver als Parameter für das Add-Apt-Repository angeben, indem Sie:

sudo add-apt-repository --keyserver hkps://keyserver.ubuntu.com:443 some_ppa

Der ausgehende Port 443 würde von der Unternehmensfirewall nicht blockiert.

Thien Pham
quelle
Warum? Es ist standardmäßig in allen meinen Netzwerken blockiert.
cprn
Diese Antwort wird nicht funktionieren, die Herausforderung der Frage ist, dass der Zugriff zentral durch eine Firewall geschützt ist.
Rui F Ribeiro