Подтвердить что ты не робот

MongoDB GPG - Недопустимые подписи

Я устанавливаю MongoDB на машине Ubuntu 14.04, используя инструкции по адресу: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Итак, я запускаю:

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

И затем:

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Далее следуют:

sudo apt-get update

Затем я получаю следующее предупреждение в конце обновления:

W: ошибка GPG: http://repo.mongodb.org trusty/mongodb-org/3.2 Релиз: Следующие недопустимые подписи: BADSIG D68FA50FEA312927 MongoDB 3.2 Ключ выхода с ключами

Если я игнорирую предупреждение и пытаюсь запустить:

sudo apt-get install -y mongodb-org

Я получаю:

ПРЕДУПРЕЖДЕНИЕ. Следующие пакеты не могут быть аутентифицированы!
mongodb-org-shell mongodb-org-server mongodb-org-mongos mongodb-org-tools mongodb-org E: Есть проблемы и -y был использован без --force-yes

Любые идеи о том, как их решить? Спасибо!

4b9b3361

Ответ 1

Обновить все истекшие ключи с сервера ключей Ubuntu по одной команде:

sudo apt-key list | \
 grep "expired: " | \
 sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' | \
 xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys

Объяснение команды:

  • sudo apt-key list - перечислены все ключи, установленные в системе;
  • grep "expired: " - оставить только строки с истекшими ключами;
  • sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' - извлекает ключи;
  • xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys - обновляет ключи от сервера ключей Ubuntu по найденным истекшим.

Источник

Ответ 2

Похоже, вам нужно повторить шаги установки для MongoDB. Сначала удалите любой существующий файл репозитория для MongoDB. Сделайте, как показано ниже.

$ sudo rm /etc/apt/sources.list.d/mongodb*.list

Затем добавьте ключ: (без ключа репозиторий не загружается).

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

Теперь создайте новый файл списка репозитория MongoDB:

$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

После добавления данных репозитория нам нужно обновить список пакетов.

$ sudo apt-get update

Теперь установите MongoDB.

sudo apt install mongodb-org

Надеюсь, это поможет!

Ответ 3

Вам не нужно переустанавливать пакеты mongo, а просто измените ключ следующим образом:

Перечислите ключи, чтобы подтвердить, что срок их действия истек:

apt-key list | grep "expired:"

Заменить ключ:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xd68fa50fea312927

Номер 0xd68fa50fea312927 является текущим действующим идентификатором ключа (срок действия истекает в 2019-10-09), как вы можете проверить здесь.

Ответ 4

Кажется, версия 3.2.1 была выпущена 11 января /2016 г., и с тех пор подпись пакетов плохая. Подпись пакетов была прекрасна накануне.

refs: https://jira.mongodb.org/browse/SERVER/fixforversion/15908/?selectedTab=com.atlassian.jira.jira-projects-plugin:version-summary-panel

Вы можете либо добавить параметр -force-yes, либо подождать несколько часов, чтобы команда mongodb увидела и исправила проблему.

Там уже есть билет: https://jira.mongodb.org/browse/SERVER-22144

Ответ 5

Я также столкнулся с этой проблемой при установке MongoDB 3.2 на моем ubuntu 16.04, используя приведенные ниже команды. Нижеследующее решение предоставляется в качестве вопроса, связанного с установкой v2.2 MongoDB

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update

После выполнения указанной выше команды обновления я нашел следующие предупреждения

W: GPG error: http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release: The following signatures were invalid: KEYEXPIRED 1507497109
W: The repository 'http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 Release' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Дальнейшее исследование с помощью следующей команды для перечисления всех клавиш

sudo apt-key list

Это показывает, что текущий ключ истек на 2017-10-08

pub   4096R/EA312927 2015-10-09 [expired: 2017-10-08]
uid                  MongoDB 3.2 Release Signing Key <[email protected]>

Это также имело смысл, так как теперь текущая стабильная версия MongoDB (3.4.9).

Чтобы исправить проблему, сначала сделаем небольшую очистку (необязательно)

  • мы удаляем старый добавленный ключ

    sudo apt-key list//Список всех клавиш

    sudo apt-key del EA312927//Найти uid ключа, который нужно удалить

    apt-key list | grep Mongodb//Проверьте, удалили ли его

  • Теперь мы удаляем репозиторий MongoDB, добавленный в /etc/apt/sources.list.d

    sudo rm/etc/apt/sources.list.d/mongodb*.list

  • Теперь мы устанавливаем последнюю стабильную версию MongoDB (3.4.9), используя ниже команды

Импортировать открытый ключ, используемый диспетчером пакетов Ubuntu

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Создайте список файлов для mongoDB для извлечения текущего репозитория

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-3.4.list

Установите MongoDB

sudo apt-get update
sudo apt-get install mongodb-org

Ответ 6

У меня была такая же проблема, и я решил ее, установив mongodb с методом tarball. Подробнее см. Ниже.

https://docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/

Добавление сведений ниже

Ответ 7

Я также столкнулся с этой проблемой при установке MongoDB 4.0 на Ubuntu 16.04. Так я и сделал.

  1. sudo rm /etc/apt/sources.list.d/mongodb*.list - удалить любой существующий файл для MongoDB

  2. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4 - добавить ключ

  3. sudo bash -c 'echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" > /etc/apt/sources.list.d/mongodb-org-4.0.list' - создать новый файл списка репозитория MongoDB

Теперь завершите установку обновлением репозиториев, затем установите MongoDB, включите службу mongod и запустите ее, и, наконец, проверьте версию MongoDB:

sudo apt update
sudo apt install mongodb-org

systemctl enable mongod.service
systemctl start mongod.service

mongo --version

Ответ 8

У меня была такая же проблема, поэтому я сделал:

[email protected]:~# apt remove mongodb-org

Тогда:

[email protected]:~# sudo rm /etc/apt/sources.list.d/mongodb*.list

После:

[email protected]:~# apt update

Ответ 9

На самом деле, следующее очень важно, чтобы решить проблему

$ sudo rm /etc/apt/sources.list.d/mongodb*.list