27

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

Хост keyserver.ubuntu.com не найден
gpgkeys: ошибка HTTP-выборки 7: не удалось подключиться: такого файла или каталога нет
gpg: не найдены действительные данные openPGP
GPG: Всего процессов: 0

Я отключил брандмауэр на Iptables, но он не работает. Есть ли идея?

4 ответа4

31

На самом деле это может не быть проблемой при поиске сервера ключей, что и предполагает ошибка. Команда 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
17

Я столкнулся с той же проблемой, что и моя машина за корпоративным прокси. Добавление gpg --keyserver-option http-proxy сделало свое дело. Похоже:

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

Если вы используете прокси, например, прокси компаний, то, вероятно, единственный способ - ввести это вручную, что очень просто. Бежать:

sudo apt-get update

и получите идентификатор pub_key. Затем перейдите по адресу http://keyserver.ubuntu.com/ и найдите ключ в шестнадцатеричном формате, например, если ключ равен 7936A783B, а затем найдите 0x7936A783B. Нажмите на ссылку щенка и скопируйте содержимое ключа и сохраните его в текстовый файл. Зайдите в терминал, перейдите к файлу и запустите:

sudo apt-key add key.txt

Если это сработает, вы получите простой OK отзыв. Когда все ключи добавлены, вы можете запустить:

sudo apt-get update

и вот оно!

1

Второй подход, упомянутый в этой ссылке, работал для меня. Вручную загрузите ключ и добавьте его. Ссылка содержит пошаговую процедуру для исправления ошибки, возникающей из-за отсутствия ключа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .