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.