Jak obejść zablokowany wychodzący port hkp dla kluczy apt

35

Używam Ubuntu 9.10 i muszę dodać niektóre apt repozytoria. Niestety po uruchomieniu otrzymuję takie wiadomości sudo apt-get update:

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

Muszę więc zainstalować klucze do tych repozytoriów. W wersji 9.10 mamy teraz opcję:

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

Szczegółowe informacje można znaleźć w tym artykule pomocy Ubuntu .

Jest to świetne, z wyjątkiem tego, że uruchamiam to na stacji roboczej za zaporą ogniową, która blokuje połączenia wychodzące do prawie wszystkich portów oprócz tych wymaganych przez sekretarek z systemem Windows i IE.

Port, o którym mowa, to usługa HKP, port 11371.

Wydaje się, że istnieją sposoby ręcznego pobierania kluczy i instalowania ich na breloku apt. Może nawet istnieć sposób użycia repozytorium add-apt lub wget lub czegoś, aby pobrać klucz z alternatywnego serwera udostępniającego go na porcie 80.

Jednak nie znalazłem jeszcze zwięzłego zestawu kroków do zrobienia tego. To czego szukam to:

  1. Jak znaleźć klucz publiczny dla pakietu apt (rekomendacje dla zasobów, które je mają i / lub wskazówki dotyczące wyszukiwania. Wyszukiwanie skrótu klucza nie wydaje się aż tak skuteczne).
  2. Jak odzyskać klucz (czy można to zrobić automatycznie przy użyciu gpg lub repozytorium add-apt-repository?)
  3. Jak dodać klucz do breloka apt

Z góry dziękuję.

Kief
źródło

Odpowiedzi:

38

Zostało to naprawione w nadchodzącej wersji Ubuntu Natty: https://launchpad.net/ubuntu/natty/+source/software-properties/0.78.1

Użytkownicy korzystający ze starszej wersji muszą edytować plik ppa.py:

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

Gdzie jest napisane:

keyserver.ubuntu.com

zmień na:

hkp://keyserver.ubuntu.com:80

Zapisz, wyjdź, a potem masz nadzieję, że dobrze.

Phil Bradley
źródło
1
Wspaniale - rozwiązałem mój problem!
Fedearne
14
W dniu 10.10 zamiast edytować ten plik źródłowy, mogłem po prostu wywołaćsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys KEY_HASH
l0b0
hkp://keyserver.ubuntu.com:80działa również 10.04.
bd808
1
+1 do użytku--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
użytkownik46707
źródło
13

Oto jedno obejście, którego użyłem:

Zalogowałem się na serwerze Linux w wolnym świecie poza naszą korporacyjną zaporą ogniową i zrobiłem to:

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

Następnie na mojej stacji roboczej uruchomiłem to i wkleiłem dane wyjściowe z powyższego polecenia (klucza publicznego) do standardowego wejścia, a następnie control-D:

sudo apt-key add -

Wtedy mogłem biegać sudo apt-get updatebez problemów.

Nadal uważam, że musi być lepszy sposób, najlepiej coś, co mógłbym napisać.

Kief
źródło
„Zalogowałem się na serwerze z linuksem w wolnym świecie”. Jest mało prawdopodobne, że można to zrobić, nawet jeśli hkp jest zablokowany.
gertvdijk
^ może zakładając, że żyjesz w represyjnym reżimie, a nie w jakimś bizantyjskim dziale IT. Mogę SSH gdziekolwiek chcę, kiedy jestem w sieci VPN, ale nie ma pakietów DNS (i najwyraźniej nie ma HKP). Właśnie tego potrzebowałem.
Kingdon
8

Mam tutaj inne obejście, które może się przydać, jeśli nie możesz znaleźć innego serwera linuksowego poza siecią jako serwera proxy. Wystarczy wysłać wiadomość e-mail na adres „[email protected]”, na przykład „Get 0x1DABDBB4CEC06767”. Ale prawdopodobnie nadal nie możesz napisać prostego skryptu, aby to zautomatyzować.

Roger Choi
źródło
5

Możesz przejść do strony internetowej serwera kluczy, np. Http://wwwkeys.eu.pgp.net/ Wyszukaj podpis klucza (musisz dodać 0x do podpisu szesnastkowego), tj. 0x1DABDBB4CEC06767.

Kliknij link, który, mam nadzieję, uzyskasz i wklej tekst do pliku na komputerze, tj

cat > <filename>

[PASTE]

[Ctrl-C]

Następnie

apt-key add <filename>

To działało dobrze dla mnie; wygląda na to, że moja praca proxy blokuje wiele „niestandardowych” portów.

CJBrew
źródło
To jedyny sposób, który działał dla mnie. Mój serwer proxy mocno blokuje protokół hkp, a nawet jeśli używam portu 80, gpg wciąż się kontaktuje z serwerem. W ten sposób mogłem w końcu dodać klucz.
Alexander Amelkin,
4

Znalazłem dobry sposób na zrobienie tego w jednym poleceniu przez port 80, który jest zawsze otwarty dla ruchu www.

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

Tony
źródło
2
apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv-keys ...
vorburger
1
Witam i witam u administratora. Odpowiadając na pytania, odpowiedz na pytanie, podając rozwiązanie w samej odpowiedzi. Nie ma gwarancji, że witryna, do której się odwołujesz, będzie ją aktualizować, a jeśli spadnie, wówczas Twoja odpowiedź będzie bezwartościowa.
Mogget
2

Prostym rozwiązaniem jest:

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

Bezpieczna https (wychodzące 443) nie zostanie zablokowana przez zaporę.

Thien Pham
źródło
1

Po prostu używam ssh, aby przekazać port do zewnętrznego hosta, a następnie uruchomić apt-add-repopolecenie.

ssh -fqTnN -D 11371 <user@host>
Thermionix
źródło
-1

Miałem ten sam problem z gpg. Obejście problemu związane z dodawaniem portu do nazwy serwera polegało na edycji mojego ~/.gnupg/gpg.confpliku. Jednak nadal zamierzam poprosić naszego administratora systemu o otwarcie portu wychodzącego 11371, więc nie muszę się o to martwić.

Patrick Salami
źródło
Portu? Jak określenie portu (11371) w konfiguracji działa wokół zapory?
0xC0000022L,