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
Любые идеи о том, как их решить? Спасибо!
Ответы
Ответ 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.
Так я и сделал.
sudo rm /etc/apt/sources.list.d/mongodb*.list
- удалить любой существующий файл для MongoDB
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4
- добавить ключ
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