Umgehen des blockierten ausgehenden HPP-Ports für passende Schlüssel


35

Ich benutze Ubuntu 9.10 und muss einige passende Repositorys hinzufügen. Leider erhalte ich beim Laufen sudo apt-get updatefolgende Meldungen :

W: GPG error: http://ppa.launchpad.net karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A9BF3BB4E5E17B5
W: GPG error: http://ppa.launchpad.net karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1DABDBB4CEC06767

Daher muss ich die Schlüssel für diese Repositorys installieren. Unter 9.10 haben wir jetzt die Möglichkeit, dies zu tun:

sudo add-apt-repository ppa:nvidia-vdpau/ppa

Weitere Informationen finden Sie in diesem Ubuntu- Hilfeartikel.

Das ist großartig, außer dass ich dies auf einer Workstation hinter einer Firewall ausführe, die ausgehende Verbindungen zu fast allen Ports blockiert, mit Ausnahme derjenigen, die von Sekretären unter Windows und IE benötigt werden.

Der fragliche Port ist der hkp-Dienst, Port 11371.

Es scheint Möglichkeiten zu geben, Schlüssel manuell herunterzuladen und am Schlüsselbund von apt zu installieren. Es kann sogar eine Möglichkeit geben, mithilfe von Add-Apt-Repository oder Wget oder etwas anderem einen Schlüssel von einem alternativen Server herunterzuladen, der ihn auf Port 80 verfügbar macht.

Ich habe jedoch noch keine genauen Schritte dafür gefunden. Was ich suche ist:

  1. So finden Sie einen öffentlichen Schlüssel für ein apt-Paket (Empfehlungen für Ressourcen mit diesem Schlüssel und / oder Suchtipps. Die Suche nach dem Schlüssel-Hash scheint bisher nicht besonders effektiv zu sein.)
  2. Wie rufe ich einen Schlüssel ab? (Kann das automatisch mit gpg oder add-apt-repository geschehen?)
  3. So fügen Sie dem Schlüsselbund von apt einen Schlüssel hinzu

Danke im Voraus.

Antworten:


38

Dies wurde in der kommenden Natty-Version von Ubuntu behoben: https://launchpad.net/ubuntu/natty/+source/software-properties/0.78.1

Diejenigen, die eine ältere Version verwenden, müssen ppa.py bearbeiten:

sudo gedit /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py

Wo steht:

keyserver.ubuntu.com

ändern:

hkp://keyserver.ubuntu.com:80

Speichern, beenden, dann kann es hoffentlich losgehen.


1
Genial - mein Problem gelöst!
Fedearne

14
Anstatt diese Quelldatei zu bearbeiten, könnte ich am 10.10. Einfachsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys KEY_HASH
l0b0

hkp://keyserver.ubuntu.com:80funktioniert auch am 10.04.
BD808

1
+1 für den Einsatz--keyserver hkp://keyserver.ubuntu.com:80
Rogeriolino

19
sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://proxy:port --recv-keys KEYID

13

Hier ist eine Problemumgehung, die ich verwendet habe:

Ich habe mich auf einem Linux-Server in der freien Welt außerhalb unserer Unternehmens-Firewall angemeldet und dies getan:

gpg --keyserver keyserver.ubuntu.com --recv 1DABDBB4CEC06767 && gpg --export --armor 1DABDBB4CEC06767

Dann habe ich dies auf meiner Workstation ausgeführt und die Ausgabe des obigen Befehls (den öffentlichen Schlüssel) in den Standardeintrag eingefügt, gefolgt von control-D:

sudo apt-key add -

Dann konnte ich sudo apt-get updateohne Probleme laufen .

Ich denke immer noch, dass es einen besseren Weg geben muss, idealerweise etwas, das ich schreiben könnte.


"Ich habe mich auf einem Linux-Server in der freien Welt angemeldet." Es ist unwahrscheinlich, dass dies möglich ist, selbst wenn hkp blockiert ist.
gertvdijk

^ Vielleicht nehmen wir an, Sie leben in einem repressiven Regime und nicht in einer byzantinischen IT-Abteilung. Ich kann überall SSH, wo ich möchte, wenn ich in einem VPN bin, aber keine DNS-Pakete (und anscheinend kein HKP.) Dies ist genau das, was ich brauchte.
Kingdon

8

Ich habe hier eine andere Problemumgehung, die nützlich sein könnte, wenn Sie keinen anderen Linux-Server außerhalb Ihres Netzwerks als Proxy finden. Senden Sie einfach eine E-Mail an "pgp-public-keys@pgp.mit.edu" wie Betreff als "get 0x1DABDBB4CEC06767". Aber Sie können wahrscheinlich immer noch kein einfaches Skript schreiben, um dies zu automatisieren.


5

Sie können die Website des Keyservers aufrufen, z. B. http://wwwkeys.eu.pgp.net/ Suchen Sie nach der Schlüsselsignatur (Sie müssen der Hex-Signatur 0x hinzufügen), z. B. 0x1DABDBB4CEC06767.

Klicken Sie auf den Link, den Sie hoffentlich erhalten, und fügen Sie den Text in eine Datei auf dem Computer ein, z

cat > <filename>

[PASTE]

[Ctrl-C]

Dann

apt-key add <filename>

Das hat gut funktioniert für mich; Es sieht so aus, als würde mein Arbeitsproxy viele "nicht standardmäßige" Ports blockieren.


Dies ist der einzige Weg, der für mich funktioniert hat. Mein Proxy blockiert das hkp-Protokoll stark, und selbst wenn ich Port 80 verwende, tritt bei der Kontaktaufnahme mit gpg mit einem Server immer noch eine Zeitüberschreitung auf. Auf diese Weise konnte ich endlich den Schlüssel hinzufügen.
Alexander Amelkin

4

Ich habe eine gute Möglichkeit gefunden, dies mit einem einzigen Befehl über Port 80 zu tun, der immer für den WWW-Verkehr geöffnet ist.

http://gurrier.wordpress.com/2010/10/02/downlolading-repo-keys-from-behind-a-corporate-firewall/


2
apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv-keys ...
vorburger

1
Hallo und willkommen beim Superuser. Beantworten Sie bei der Beantwortung von Fragen die Frage mit der Lösung in der Antwort. Es gibt keine Garantie dafür, dass die Website, auf die Sie verwiesen haben, in Betrieb bleibt. Wenn die Website ausfällt, ist Ihre Antwort wertlos.
Mogget

2

Eine einfache Lösung ist:

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

Das sichere https (ausgehend 443) würde von der Firewall nicht blockiert.


1

Ich verwende einfach ssh, um den Port an einen externen Host weiterzuleiten, und führe dann den apt-add-repoBefehl aus.

ssh -fqTnN -D 11371 <user@host>

-1

Ich hatte das gleiche Problem mit GPG. Die Problemumgehung beim Hinzufügen des Ports zum Servernamen funktionierte, indem meine ~/.gnupg/gpg.confDatei bearbeitet wurde . Ich werde unseren Systemadministrator jedoch weiterhin bitten, den ausgehenden Port 11371 zu öffnen, damit ich mich nicht erneut darum kümmern muss.


Der Hafen? Wie funktioniert die Angabe des Ports (11371) in der Konfiguration um die Firewall herum?
0xC0000022L
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.