MongoDB GPG - Geçersiz İmzalar


99

MongoDB'yi bir Ubuntu 14.04 makinesine şu adresteki talimatları kullanarak kuruyorum: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

Ben de koşuyorum:

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

Ve sonra:

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

Bunu takiben:

sudo apt-get update

Güncellemenin sonunda aşağıdaki uyarıyı alıyorum:

W: GPG hatası: http://repo.mongodb.org trusty / mongodb-org / 3.2 Sürüm: Aşağıdaki imzalar geçersizdi: BADSIG D68FA50FEA312927 MongoDB 3.2 Yayınlama Anahtarı

Uyarıyı görmezden gelirsem ve çalıştırmayı denersem:

sudo apt-get install -y mongodb-org

Alırım:

UYARI: Aşağıdaki paketlerin kimliği doğrulanamaz!
mongodb-org-shell mongodb-org-server mongodb-org-mongos mongodb-org-tools mongodb-org E: Sorunlar var ve -y --force-yes olmadan kullanıldı

Nasıl çözüleceğine dair bir fikriniz var mı? Teşekkürler!


5
Aynı hata, ayrıca 14.04 LTS
Mike

1
Sorun 18 Şubat'ta hala burada ve aşağıda çalışan bir çözüm var, ancak kabul edilmedi: stackoverflow.com/a/46737148/2273305 @ assaf-hershko, lütfen en iyi yanıt seçiminizi değiştirmeyi düşünün
hooke

Anahtarları docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu adresindeki resmi kurulum belgelerine göre içe aktarmak benim için çalıştı. 2019-06-10 itibariyle çalıştırılacak komutsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
Eborbob

Yanıtlar:


287

Ubuntu anahtar sunucusundaki tüm süresi dolan anahtarları tek bir komutla güncelleyin:

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

Komut açıklaması:

  1. sudo apt-key list - sistemde kurulu tüm anahtarları listeler;
  2. grep "expired: " - yalnızca süresi dolmuş anahtarları olan satırları bırakın;
  3. sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' - anahtarları çıkarır;
  4. xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys - Ubuntu anahtar sunucusundaki anahtarları süresi dolmuş olanlarla günceller.

Kaynak


2
Bu, Mint üzerinde harika çalıştı. Not: için argüman --recv-keysüresi dolmuş anahtardır.
not2qubit

Şaşırtıcı, çok teşekkür ederim, diğer uygulamalarda yaşadığım benzer sorunları da çözdü. Bunu ileride kullanmak için bir dosyaya kaydetmem gerekiyor.
Yomi

12
Bu yıl sonra "kabul edilen çözümden" gören herkes için bu en basit çözümdür.
Nicholi

1
Çözüm bu! @ assaf-hershko, lütfen bunun için kabul edilen çözümü değiştirmeyi düşünün!
hooke

9
Bu artık çalışmıyor gibi görünüyor, çünkü formatı apt-key listartık bu yanıttaki onu işleyen komutlarla uyumlu değil. Bunun yerine koş sudo apt-key list | grep -A 1 expired. 40 onaltılık parmak izini kopyalayın. Ardından, kopyaladığınız değerin sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $FINGERPRINTolduğu komutu çalıştırın $FINGERPRINT(boşluk içeriyorsa, tırnak işaretleri içine alın).
Laurence Gonsalves

48

MongoDB için kurulum adımlarını yeniden yapmanız gerekiyor gibi görünüyor. Öncelikle, MongoDB için mevcut herhangi bir depo dosyasını kaldırın. Aşağıdaki gibi yapın.

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

Ardından anahtarı ekleyin: (anahtar olmadan depo yüklenmeyecektir).

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

Şimdi, yeni bir MongoDB depo listesi dosyası oluşturun:

$ 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

Depo detaylarını ekledikten sonra paket listesini güncellememiz gerekiyor.

$ sudo apt-get update

Şimdi MongoDB'yi kurun.

sudo apt install mongodb-org

Bu yardımcı olur umarım !


Teşekkürler @Tiziano. Çözümünü aldığına sevindim.
PyDevSRS

5
İhtiyaç duyulan tek adım, anahtarın yeniden içe aktarılmasıdır: sudo apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv EA312927
Ben McCann

Benim için de çalıştı. Sanırım Ben'in de belirttiği gibi, yeniden ithalat anahtarın anahtarı.
James O'Brien

E Alınıyor: mongodb-org paketi bulunamıyor
Muhammed Hafil

25

Mongo paketlerini yeniden yüklemenize gerek yoktur, ancak anahtarı aşağıdaki gibi değiştirmeniz yeterlidir:

Süresinin dolduğunu onaylamak için anahtarları listeleyin:

apt-key list | grep "expired:"

Anahtarı değiştirin:

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

Burada kontrol edebileceğiniz gibi, 0xd68fa50fea312927 numarası geçerli geçerli anahtar kimliğidir (süresi 2019-10-09'da sona erer) .


1
Bu bana gerçekten yardımcı oldu.
Anil Chaudhari

Sanırım burada daha ayrıntılı olarak açıklanan yöntem bu: futurestud.io/tutorials/… . Bu benim için çalıştı.
Küçük Beyin

9

Görünüşe göre 3.2.1 sürümü 11 / Ocak / 2016'da yayınlandı ve şu andan beri paketlerin imzası kötü. Paketlerin imzası bir gün önce iyiydi.

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

--Force-yes seçeneğini ekleyebilir veya mongodb ekibinin sorunu görmesi ve düzelmesi için birkaç saat bekleyebilirsiniz.

Orada zaten bir bilet var: https://jira.mongodb.org/browse/SERVER-22144


1
--Force-evet'i kullandım, bu çözümle alacağım bir risk var mı?
Lam

1
Mart 2016, henüz düzeltilmedi.
retrografi

8
Yine Ekim 2017'de
Aitor Aznar Álvarez

4
Ocak 2018, hala var.
Kostanos

3
ve hala Mart 2018'de
Waqas Malik

9

Ubuntu 16.04'e MongoDB 4.0 yüklerken de bu sorunla karşılaştım. Ben de yaptım.

  1. sudo rm /etc/apt/sources.list.d/mongodb*.list - MongoDB için mevcut herhangi bir dosyayı kaldırın

  2. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E52529D4 - anahtarı ekle

  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' - yeni bir MongoDB depo listesi dosyası oluşturun

Şimdi, bir depo güncellemesi ile kurulumu tamamlayın, ardından MongoDB'yi kurun, mongodservisi etkinleştirin ve başlatın ve son olarak, MongoDB sürümünüzü kontrol edin:

sudo apt update
sudo apt install mongodb-org

systemctl enable mongod.service
systemctl start mongod.service

mongo --version

Görünüşe göre sorun sadece # 2 adımıyla çözüldü, ortak anahtarı ubuntu anahtar deposuna içe aktararak. Cevap için teşekkürler!
Anand Vaidya

7

MongoDB 3.2'yi ubuntu 16.04 cihazıma aşağıdaki komutları kullanarak yüklerken de bu sorunla karşılaştım. Aşağıdaki çözüm, MongoDB'nin v3.2 kurulumu ile ilgili soru olarak sunulmuştur.

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

Yukarıdaki güncelleme komutunu çalıştırdıktan sonra aşağıdaki uyarıları buldum

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.

Tüm anahtarları listelemek için aşağıdaki komutu kullanarak daha fazla araştırma hakkında

sudo apt-key list

Mevcut anahtarın 2017-10-08 tarihinde süresinin dolduğunu gösterir.

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

MongoDB Güncel Kararlı Sürüm artık (3.4.9) olduğu için bu da mantıklıydı.

Sorunu çözmek için önce küçük bir temizlik yapıyoruz (isteğe bağlı)

  1. eklenen eski anahtarı kaldırdık

    sudo apt-key list // Tüm anahtarları listele

    sudo apt-key del EA312927 // Silinecek anahtarın kullanıcı kimliğini bulun

    apt-key listesi | grep Mongodb // Silinmişse doğrula

  2. Şimdi /etc/apt/sources.list.d'de eklenen MongoDB deposunu kaldırıyoruz.

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

  3. Şimdi MongoDB'nin (3.4.9) en son kararlı sürümünü aşağıdaki komutları kullanarak kuruyoruz

Ubuntu Paket Yöneticisi tarafından kullanılan Genel Anahtarı içe aktarın

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

Mevcut depoyu getirmek için mongoDB için bir dosya listesi oluşturun

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'yi yükleyin

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

3

Ben de aynı sorunu yaşadım ve tarball yöntemi ile mongodb kurarak çözdüm. Ayrıntılı bilgi için aşağıdaki bağlantıya bakın.

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

Aşağıda ayrıntılar ekleniyor

  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. dışa aktar PATH = / bin: $ PATH

  5. daha sonra mongod'u çalıştırın (db yolunun ayarlanması gerekebilir)


1
Bağlantı sağlamak iyidir, ancak çözümü burada kendi başına açıklamaya çalışın
Nehal

1
Bunu yapabilirim, ancak bağlantının kendisi yeterince ayrıntıyı açıklıyor, bu yüzden gerekli olmayacağını düşündüm ..
Harrison Hyunmin Cho

2

Aslında, sorunu çözmek için aşağıdakiler çok önemlidir

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

1

Aynı sorunu yaşadım, ben de yaptım:

root@skarabi:~# apt remove mongodb-org

Sonra:

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

Sonra:

root@skarabi:~# apt update


Bu, MongoDB depolarını makinenizden kaldıracak değil mi? O halde nasıl kuracaksın?
Colin Nicholson

ve sonra yükleyin, bu bağlantıyı kontrol edebilirsiniz: docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu GPG anahtarı bile var. Benimle çalışıyor
Zineb SKARABI

Bu tehlikeli ve kötü. apt removeEn yeni anahtarı almak için Mongo'yu makinenizden kaldırmanız için hiçbir neden yoktur . Sadece uygun kaynaklar için güncellenmiş bir anahtar almaya çalışmak için tüm veritabanınızı yok edeceksiniz.
BoomShadow

1

Dlopatin'in cevabını kullanarak Ubuntu 18.04 için bunu buldum çünkü bu kod artık çalışmıyor:

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. Anahtarları listeleyin sudo apt-key list
  2. Süresi dolmuş olanı alın ve bir sonraki satırı parmak iziyle yazdırın grep -A 1 "\[expired:"
  3. Sed'i yalnızca boşlukla başlayan satırları ayıklamak ^\s\{1,10\}ve alfanümerik karakterleri seçmek, \(\w*\)bu satırları parmak izi olan seçili grupla değiştirmek \1, döndürülen tüm satırlar için tekrarlamak ve gardından parmak izini yazdırmak için kullanın p. Bu verir:sed -ne 's|^\s\{1,10\}\(\w*\)|\1|gp'
  4. '\ N' için sınırlayıcı ile xargs kullanın, aksi takdirde boşluklarda kırılır: xargs -d '\n'sonra parmak izlerini, bunları güncellemek için apt-key'e bağımsız değişken olarak geçirin: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keysbu size şunu verir:xargs -d '\n' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys

Umarım bu açıktır. Apt-key çıktısının ayrıştırılmasıyla ilgili uyarıyı dikkate almayın :)


0

Google Cloud üzerinde Ubuntu 18.04 örneğine MongoDB 4.2 yüklerken benzer sorunu yaşadım ve aşağıdaki hatayı aldım.

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

Benden işe yarayan çözüm, anahtarı almak için aşağıdaki komutu çalıştırmaktı. Bunu MongoDB resmi Jira Sorun Sayfalarında buldum.

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

Bu çözümü MongoDB resmi Jira sorunlarında buldum. İşte sorunun bağlantısı .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.