Як обійти заблокований вихідний hkp-порт для влучних ключів


35

Я використовую Ubuntu 9.10, і мені потрібно додати деякі схожі сховища. На жаль, під час роботи я отримую такі повідомлення 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

Отже, мені потрібно встановити ключі для цих сховищ. Під 9.10 у нас є можливість зробити це:

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

Детальну інформацію див. У цій довідковій статті Ubuntu .

Це чудово, за винятком того, що я запускаю це на робочій станції за брандмауером, який блокує вихідні з'єднання майже до всіх портів, крім тих, що вимагаються секретарями під керуванням Windows та IE.

Тут йдеться про сервіс hkp, порт 11371.

Можливо, є способи завантажувати ключі вручну та встановлювати їх на ключові слова apt. Можливо, навіть існує спосіб використання add-apt-сховища або wget або щось для завантаження ключа з альтернативного сервера, що робить його доступним на порт 80.

Однак я ще не знайшов стислого набору кроків для цього. Що я шукаю:

  1. Як знайти відкритий ключ для підходящого пакету (рекомендації щодо таких ресурсів та / або поради щодо пошуку. Пошук ключового хешу поки що не здається таким ефективним.)
  2. Як отримати ключ (чи можна це зробити автоматично, використовуючи gpg або add-apt-сховище?)
  3. Як додати ключ до ключового слова apt

Заздалегідь спасибі.

Відповіді:


38

Це було виправлено у майбутній версії Natty Ubuntu: https://launchpad.net/ubuntu/natty/+source/software-properties/0.78.1

Ті, хто використовує старішу версію, повинні відредагувати ppa.py:

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

Де написано:

keyserver.ubuntu.com

перейти:

hkp://keyserver.ubuntu.com:80

Збережіть, вийдіть, тоді, сподіваємось, добре піти.


1
Дивовижна - вирішила мою проблему!
Fedearne

14
10.10, замість редагування цього вихідного файлу, я міг просто зателефонуватиsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys KEY_HASH
l0b0

hkp://keyserver.ubuntu.com:80працює також 10.04.
bd808

1
+1 для використання--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

Ось один із вирішень, які я використав:

Я увійшов на сервер linux у вільному світі поза нашим корпоративним брандмауером, і зробив це:

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

Потім на своїй робочій станції я запустив це і вставив висновок з вищевказаної команди (відкритий ключ) в stdin, а потім контрольно-D:

sudo apt-key add -

Тоді я міг sudo apt-get updateбез проблем бігати .

Я все ще думаю, що повинен бути кращий спосіб, в ідеалі щось, що я міг би написати сценарій.


"Я увійшов на сервер linux у вільному світі" Це не дуже ймовірно, що хтось може це зробити, якщо навіть hkp заблокований.
gertvdijk

^ можливо, якщо припустити, що ви живете в репресивному режимі, а не якийсь візантійський ІТ-відділ. Я можу SSH куди завгодно, коли я перебуваю на VPN, але ніяких пакетів DNS (і, мабуть, немає HKP.) Це саме те, що мені потрібно.
Кінгдон

8

У мене є ще одне вирішення, яке може бути корисним, якщо ви не можете знайти інший сервер Linux за межами вашої мережі як проксі. Просто надішліть електронний лист на адресу "pgp-public-keys@pgp.mit.edu", наприклад, "отримати 0x1DABDBB4CEC06767". Але ви, мабуть, досі не можете написати простий сценарій для автоматизації цього.


5

Ви можете зайти на веб-сайт сервера ключів, наприклад http://wwwkeys.eu.pgp.net/ Шукати підпис ключа (потрібно додати шістнадцятковий підпис до 0x), тобто 0x1DABDBB4CEC06767.

Клацніть на посилання, яке ви, сподіваємось, отримаєте та вставте текст у файл на машині, тобто

cat > <filename>

[PASTE]

[Ctrl-C]

Потім

apt-key add <filename>

Це добре працювало для мене; видається, що мій робочий проксі блокує безліч "нестандартних" портів.


Це єдиний спосіб, який працював на мене. Мій проксі-сервер сильно блокує протокол hkp, і навіть якщо я використовую порт 80, gpg все ще раз виходить із сервером. Таким чином я нарешті зміг додати ключ.
Олександр Амелкін

4

Я знайшов акуратний спосіб зробити це в одній команді через порт 80, який завжди відкритий для www трафіку.

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
Привіт і ласкаво просимо до суперпользователя. Відповідаючи на запитання, будь ласка, дайте відповідь на питання із рішенням у самій відповіді. Немає гарантії, що сайт, на який ви посилалися, буде тримати сайт, і якщо він знизиться, то ваша відповідь буде марною.
Могет

2

Просте рішення:

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

Захищений https (вихідний 443) брандмауер не буде заблокований.


1

Я просто використовую ssh для пересилання порту на зовнішній хост, після чого запустіть apt-add-repoкоманду.

ssh -fqTnN -D 11371 <user@host>

-1

У мене була така сама проблема з gpg. Вирішення проблеми з додаванням порту до імені сервера працював над редагуванням мого ~/.gnupg/gpg.confфайлу. Однак я все-таки прошу нашого системного адміністратора відкрити вихідний порт 11371, тому мені більше не доведеться про це турбуватися.


Порт? Як вказує порт (11371) у конфігурації навколо брандмауера?
0xC0000022L
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.