Das Hinzufügen eines GPG-Schlüssels über apt-key
schlä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.conf
ist konfiguriert ( apt
Befehle 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:
sudo
Mit der-E
Option (env beibehalten) ausführen- laufe
apt-key adv
mit--keyserver-options http-proxy=http://localhost:3128/
Option ( Quelle ) $ gpg --list-keys
aus 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/syslog
beim Laufen sehe apt-key
.
http://keyserver.ubuntu.com/
in Ihrem Browser darauf zuzugreifen ?curl
der Ausgabe oben gezeigte )Antworten:
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:
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:
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 .
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.pgp
auf 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:
quelle
Hier ist eine Lösung, die http über curl verwendet, anstatt zu versuchen, apt-key oder gpg als Proxy zu verwenden:
Diese Methode sollte anstelle der
apt-key
Einstellungen für Befehlszeilen- oder http_proxy- oder https_proxy-Umgebungsvariablen verwendet werden (die in den neuesten Versionen von deaktiviert sindapt-key
).quelle
Sie können den Keyserver als Parameter für das Add-Apt-Repository angeben, indem Sie:
Der ausgehende Port 443 würde von der Unternehmensfirewall nicht blockiert.
quelle