sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 команда повертає помилку


30

Я намагаюся встановити Mongodb на Ubuntu 12, але коли я запускаю цю команду:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Це повернуло помилку нижче:


keyserver.ubuntu.com хост не знайдено gpgkeys: помилка отримання HTTP 7: не вдалося підключити: немає такого файлу чи каталогу
gpg: не знайдено дійсних даних openPGP
gpg: Загальна кількість процесів: 0

Я вимкнув брандмауер на Iptables, але він не працює. Чи є ідея?


Чи може ваша система вирішити keyserver.ubuntu.com як IP-адресу? Тобто, який результат dig keyserver.ubuntu.com?
Xyon

Відповіді:


35

Насправді це не може бути проблемою з пошуком сервера ключів, що саме означає помилку. Команда apt-key викликає gpg, яка в свою чергу намагається отримати доступ до сервера ключів. Мабуть, є помилка в gpg, завдяки чому, якщо у сервера клавіш немає ключа, який ви запитуєте, то gpg неправильно трактує це як "хост не знайдено".

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

Тільки для довідки, ключ є, і сервер клавіш зараз відповідає для мене:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.rh1myoBdSE --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <richard@10gen.com>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

Можливо, саме порт полягає в проблемі (це був останній раз, коли я потрапив у проблему корпоративного брандмауера), тому спробуйте зробити це на стандартному HTTP-порту (80), перевірте, чи це впорядковує:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

4
"робити це на стандартному HTTP-порту (80) замість", це досить складно! tks
Bill.Zhuang

1
Попередження: без SSL ви могли потенційно потрапити в атаку MitM, яка подає вам ключ, у якого відбиток пальців має однакові останнє вісім символів ( приклад атакуючого ключа ). Такий ключ може навіть не публічно публікуватися, тому ви ніколи не дізнаєтесь, що вас перенесли. Щоб запобігти такій атаці з публічно відкритих ключів, сервер Debian Keyserver має політику, в якій зазначається, що "лише ключі в брелоках Debian ... цей сервер повернеться"
Адам Кац

21

Я зіткнувся з тією ж проблемою, коли моя машина стоїть за корпоративним проксі. Додавши gpg --keyserver-option http-proxyзроблений трюк. Виглядає як:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10

1
Спасибі! Добре, що я не перестала читати вгорі ...
Морару Ліліан

20

Якщо ви використовуєте проксі, наприклад проксі-сервер компанії, то, мабуть, єдиний спосіб - це ввести це вручну, що досить прямо. Виконати:

sudo apt-get update

і отримайте ідентифікатор pub_key. Потім перейдіть на сторінку http://keyserver.ubuntu.com/ і знайдіть ключ як шістнадцятковий, наприклад, якщо ключ є 7936A783B, то знайдіть 0x7936A783B. Клацніть посилання щеня та скопіюйте вміст ключів та збережіть його у txt-файл. Перейдіть до терміналу та перейдіть до файлу та запустіть:

sudo apt-key add key.txt

Якщо це працює, ви отримаєте простий OKвідгук. Коли всі клавіші додані, ви можете запустити:

sudo apt-get update

і там у вас є!


3
Це акуратно; також можна використовувати apt-keyapt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
дослідний

2
@ sxc731 - Сторінка apt-keyчоловіка говорить: "Зауважте, що перевірок не виконується, тому без побоювання можна повністю підірвати інфраструктуру apt-secure (8)". Це означає, що ви дійсно не хочете цього робити без SSL. Змініть це на, --fetch-keys https://…і ви повинні бути досить безпечними.
Адам Кац

@AdamKatz дуже хороший момент, дякую. На жаль, я не можу редагувати свій коментар, щоб застосувати вашу пропозицію, але все одно було схвалено ...
sxc731

--fetch-keysОпція не вдалося мені з помилкою: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol https "не підтримується GPG: немає обробника для схеми сервера ключівhttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin

Дякую, саме те, що я шукав.
Мігель Ортіс

1

Другий підхід, згаданий у цьому посиланні, працював на мене. Завантажте ключ вручну та додайте його. Посилання надає покрокову процедуру для виправлення помилки, що трапляється через відсутність ключа.

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