MongoDB GPG - nieprawidłowe podpisy


99

Instaluję MongoDB na komputerze z systemem Ubuntu 14.04, korzystając z instrukcji pod adresem : https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Więc biegnę:

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

I wtedy:

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

Śledzony przez:

sudo apt-get update

Pod koniec aktualizacji otrzymuję następujące ostrzeżenie:

W: Błąd GPG: http://repo.mongodb.org trusty / mongodb-org / 3.2 Wydanie: Następujące podpisy były nieprawidłowe: BADSIG D68FA50FEA312927 MongoDB 3.2 Klucz do podpisywania wydania

Jeśli zignoruję ostrzeżenie i spróbuję uruchomić:

sudo apt-get install -y mongodb-org

Dostaję:

OSTRZEŻENIE: Poniższe pakiety nie mogą zostać uwierzytelnione!
mongodb-org-shell mongodb-org-server mongodb-org-mongos mongodb-org-tools mongodb-org E: Wystąpiły problemy i -y zostało użyte bez --force-yes

Jakieś pomysły, jak rozwiązać? Dzięki!


5
Ten sam błąd, także 14.04 LTS
— Mike

1
Problem nadal występuje w lutym 18, a poniżej jest działające rozwiązanie, ale nie zaakceptowane: stackoverflow.com/a/46737148/2273305 @ assaf-hershko, rozważ zmianę wyboru najlepszej odpowiedzi
— hooke

Importowanie kluczy zgodnie z oficjalną dokumentacją instalacji na docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu działało dla mnie. Od 10.06.2019 polecenie do uruchomienia tosudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
— Eborbob

Odpowiedzi:


286

Zaktualizuj wszystkie wygasłe klucze z serwera kluczy Ubuntu jednym poleceniem:

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

Objaśnienie polecenia:

  1. sudo apt-key list - wyświetla listę wszystkich kluczy zainstalowanych w systemie;
  2. grep "expired: " - zostaw tylko linie z wygasłymi kluczami;
  3. sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' - wyciąga klucze;
  4. xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys - aktualizuje klucze z serwera kluczy Ubuntu według znalezionych wygasłych.

Źródło


2
To działało świetnie na Mint. Uwaga: argumentem --recv-keyjest wygasły klucz.
— not2qubit

Niesamowite, dziękuję bardzo, rozwiązało podobne problemy, które miałem z innymi aplikacjami. Muszę to zapisać w pliku do wykorzystania w przyszłości.
— Yomi

12
Dla każdego, kto zobaczy to po latach z „przyjętego rozwiązania”, jest to najprostsza poprawka.
— Nicholi

1
To jest rozwiązanie! @ assaf-hershko, rozważ zmianę przyjętego rozwiązania na to!
— hooke,

9
Wydaje się, że to już nie działa, ponieważ format apt-key listnie jest już zgodny z poleceniami w tej odpowiedzi, które ją przetwarzają. Zamiast tego biegnij sudo apt-key list | grep -A 1 expired. Skopiuj 40-cyfrowy odcisk palca. Następnie uruchom polecenie, w sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $FINGERPRINTktórym $FINGERPRINTjest skopiowana wartość (jeśli zawiera spacje, umieść ją w cudzysłowie).
— Laurence Gonsalves

48

Wygląda na to, że musisz powtórzyć kroki instalacji dla MongoDB. Najpierw usuń istniejący plik repozytorium dla MongoDB. Zrób jak poniżej.

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

Następnie dodaj klucz: (bez klucza repozytorium się nie załaduje).

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

Teraz utwórz nowy plik listy repozytoriów 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

Po dodaniu szczegółów repozytorium musimy zaktualizować listę pakietów.

$ sudo apt-get update

Teraz zainstaluj MongoDB.

sudo apt install mongodb-org

Mam nadzieję że to pomoże !


Dziękuję @Tiziano. Cieszę się, że masz rozwiązanie.
— PyDevSRS

5
Jedynym krokiem, który jest potrzebny, jest ponowny import klucza: sudo apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv EA312927
— Ben McCann

U mnie też zadziałało. Myślę, że jak stwierdził Ben, kluczem do klucza jest ponowny import.
— James O'Brien

Pobieranie E: nie można zlokalizować pakietu mongodb-org
— Muhammed Hafil

25

Nie musisz ponownie instalować pakietów mongo, po prostu zmień klucz w następujący sposób:

Wymień klucze, aby potwierdzić, że wygasło:

apt-key list | grep "expired:"

Wymień klucz:

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

Numer 0xd68fa50fea312927 to aktualny prawidłowy identyfikator klucza (wygasa w 2019-10-09), jak możesz sprawdzić tutaj .


1
To naprawdę mi pomogło.
— Anil Chaudhari,

Myślę, że jest to metoda wyjaśniona bardziej szczegółowo tutaj: futurestud.io/tutorials/… . To zadziałało dla mnie.
— Little Brain

9

Wygląda na to, że wersja 3.2.1 została wydana 11 stycznia 2016 r. I od tego momentu sygnatura pakietów jest zła. Podpis na paczkach był w porządku dzień wcześniej.

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

Możesz dodać opcję --force-yes lub poczekać kilka godzin, aż zespół mongodb zobaczy i naprawi problem.

Tam jest już bilet: https://jira.mongodb.org/browse/SERVER-22144


1
Użyłem --force - tak, czy istnieje ryzyko, które podejmuję z tym rozwiązaniem?
— Lam

1
Marzec 2016, nie został jeszcze naprawiony.
— retrografia

8
Jeszcze w październiku 2017
— Aitor Aznar Álvarez

4
Styczeń 2018, nadal to mam.
— Kostanos

3
i jeszcze w marcu 2018
— Waqas Malik

9

Miałem również do czynienia z tym problemem podczas instalowania MongoDB 4.0 na Ubuntu 16.04. Więc zrobiłem.

  1. sudo rm /etc/apt/sources.list.d/mongodb*.list - usuń istniejący plik dla MongoDB

  2. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4 - dodaj klucz

  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' - utwórz nowy plik listy repozytoriów MongoDB

Teraz zakończ instalację aktualizacją repozytoriów, a następnie zainstaluj MongoDB, włącz mongodusługę i uruchom ją, a na koniec sprawdź wersję MongoDB:

sudo apt update
sudo apt install mongodb-org

systemctl enable mongod.service
systemctl start mongod.service

mongo --version

Najwyraźniej problem został rozwiązany w zaledwie kroku 2, importując klucz publiczny do magazynu kluczy Ubuntu. Dziękuję za odpowiedź!
— Anand Vaidya

7

Napotkałem również ten problem podczas instalowania MongoDB 3.2 na moim ubuntu 16.04 za pomocą poniższych poleceń. Poniższe rozwiązanie zostało przedstawione jako pytanie związane z instalacją MongoDB w wersji 3.2

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

Po uruchomieniu powyższego polecenia aktualizacji znalazłem następujące ostrzeżenia

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.

Dalsze badanie za pomocą poniższego polecenia, aby wyświetlić listę wszystkich kluczy

sudo apt-key list

Pokazuje, że aktualny klucz wygasł w dniu 2017-10-08

pub   4096R/EA312927 2015-10-09 [expired: 2017-10-08]
uid                  MongoDB 3.2 Release Signing Key <packaging@mongodb.com>

Miało to również sens, ponieważ obecna stabilna wersja MongoDB jest teraz (3.4.9).

Aby najpierw rozwiązać problem, wykonujemy małe porządki (opcjonalnie)

  1. usuwamy stary dodany klucz

    sudo apt-key list // Wyświetl wszystkie klucze

    sudo apt-key del EA312927 // Znajdź identyfikator UID klucza do usunięcia

    lista kluczy apt | grep Mongodb // Sprawdź, czy został usunięty

  2. Teraz usuwamy repozytorium MongoDB dodane w /etc/apt/sources.list.d

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

  3. Teraz instalujemy najnowszą stabilną wersję MongoDB (3.4.9) za pomocą poniższych poleceń

Zaimportuj klucz publiczny używany przez Menedżera pakietów Ubuntu

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

Utwórz listę plików dla mongoDB, aby pobrać bieżące repozytorium

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

Zainstaluj MongoDB

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

3

Miałem ten sam problem i rozwiązałem go, instalując mongodb metodą tarballa. Aby uzyskać szczegółowe informacje, skorzystaj z poniższego łącza.

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

Dodawanie szczegółów poniżej

  1. curl -O https://fastdl.mongodb.org/linux/mongodb-linux-i686-3.2.0.tgz
  2. tar -zxvf mongodb-linux-i686-3.2.0.tgz
  3. mkdir -p mongodb && cp -R -n mongodb-linux-i686-3.2.0 / mongodb
  4. export PATH = / bin: $ PATH

  5. następnie uruchom mongod (może być konieczne ustawienie ścieżki db)


1
Podanie linków jest dobre, ale spróbuj wyjaśnić tutaj samo rozwiązanie
— Nehal

1
Mogę to zrobić, ale sam link wyjaśnia wystarczająco dużo szczegółów, więc pomyślałem, że nie będzie to konieczne ..
— Harrison Hyunmin Cho

2

W rzeczywistości bardzo ważne jest, aby rozwiązać problem

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

1

Miałem ten sam problem, więc zrobiłem:

root@skarabi:~# apt remove mongodb-org

Następnie:

root@skarabi:~# sudo rm /etc/apt/sources.list.d/mongodb*.list

Po :

root@skarabi:~# apt update


To po prostu usunie repozytoria MongoDB z twojego komputera, prawda? Jak zamierzasz wtedy zainstalować?
— Colin Nicholson

a następnie zainstaluj, możesz sprawdzić pod tym linkiem: docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu Jest nawet klucz GPG. Działa ze mną
— Zineb SKARABI

To jest niebezpieczne i złe. Nie ma powodu, aby apt remove(odinstalować) Mongo ze swojego komputera, aby uzyskać najnowszy klucz. Będziesz niszczyć całą bazę danych tylko po to, aby spróbować pobrać zaktualizowany klucz do źródeł apt.
— BoomShadow

1

Korzystając z odpowiedzi dlopatin, wymyśliłem to dla Ubuntu 18.04, ponieważ ten kod już nie działa:

sudo apt-key list | \
grep -A 1 "\[expired:" | \
sed -ne 's|^\s\{1,10\}\(\w*\)|\1|gp' | \
xargs -d '\n' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
  1. Lista kluczy sudo apt-key list
  2. Zdobądź ten, który wygasł i wydrukuj następny wiersz z odciskiem palca grep -A 1 "\[expired:"
  3. Użyj seda, aby wyodrębnić tylko linie zaczynające się od spacji ^\s\{1,10\}i wybierz znaki alfanumeryczne \(\w*\), zamień te linie na wybraną grupę, którą jest odcisk palca \1, powtórz dla wszystkich zwróconych linii g, a następnie wydrukuj odcisk palca p. To daje:sed -ne 's|^\s\{1,10\}\(\w*\)|\1|gp'
  4. Użyj xargs z separatorem dla '\ n', w przeciwnym razie przerwie na spacje:, xargs -d '\n'a następnie przekaż odciski palców jako argumenty do apt-key, aby je zaktualizować: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keysco daje:xargs -d '\n' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys

Mam nadzieję, że to jasne. Zignoruj ​​ostrzeżenie o przetwarzaniu danych wyjściowych apt-key :)


0

Doświadczyłem podobnego problemu i otrzymałem następujący błąd podczas instalowania MongoDB 4.2 na wystąpieniu Ubuntu 18.04 w Google Cloud.

W: GPG error: http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4B7C549A058F8B6B
E: The repository 'http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details

Rozwiązaniem, które zadziałało ode mnie, było uruchomienie następującego polecenia, aby uzyskać klucz. Znalazłem to na oficjalnych stronach problemów Jira w MongoDB.

/usr/bin/curl -sLO https://www.mongodb.org/static/pgp/server-4.2.asc && sudo /usr/bin/apt-key add server-4.2.asc

Znalazłem to rozwiązanie w oficjalnych wydaniach Jira MongoDB. Oto link do problemu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.