MongoDB GPG-無効な署名


98

次のURLにある指示に従って、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:問題があり、-force-yesなしで-yが使用されました

解決方法に関するアイデアはありますか?ありがとう!


5
同じエラー、14.04 LTS
Mike

1
トラブルがここにFeb'18にまだある、と以下の作業溶液があるが、1受け入れられません。stackoverflow.com/a/46737148/2273305 @アサフ・hershkoを、最良の答えのあなたの選択を変更することを検討してください
フック

docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntuにある公式のインストールドキュメントに従ってキーをインポートすると、うまくいきました。2019-06-10現在実行するコマンドはsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
Eborbob

回答:


286

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

コマンドの説明:

  1. sudo apt-key list -システムにインストールされているすべてのキーを一覧表示します。
  2. grep "expired: " -期限切れのキーを持つ行のみを残します。
  3. sed -ne 's|pub .*/\([^ ]*\) .*|\1|gp' -キーを抽出します。
  4. xargs -n1 sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys -検出された期限切れのものによってUbuntuキーサーバーからキーを更新します。

ソース


2
これはミントでうまくいきました。注:の引数--recv-keyは、期限切れのキーです。
not2qubit 2017年

すばらしいことに、他のアプリケーションでも同様の問題が解決されました。これを将来使用するためにファイルに保存する必要があります。
読売

12
「受け入れられた解決策」からこの数年後に目にする人にとって、これは最も簡単な修正です。
Nicholi 2017年

1
これが解決策です!@ assaf-hershko、これに対する承認済みソリューションの変更を検討してください!
18

9
の形式はapt-key listこの回答のコマンドを処理するコマンドと互換性がないため、これはもう機能していないようです。代わりに、を実行しsudo apt-key list | grep -A 1 expiredます。40桁の16進数の指紋をコピーします。次は、コマンドを実行します(これを引用符で囲み、それにスペースが含まれている場合、)あなたが値コピーされます。sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $FINGERPRINT$FINGERPRINT
ローレンスゴンサルベス

48

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

お役に立てれば !


@Tizianoありがとうございます。私はあなたがあなたの解決策を手に入れてうれしいです。
PyDevSRS 2017年

5
必要な唯一の手順は、キーの再インポートです。sudoapt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Ben McCann

私のためにも働いた。ベンが述べたように、再インポートが鍵の鍵です。
James O'Brien

Eの取得:パッケージmongodb-orgが見つかりません
Muhammed Hafil

25

mongoパッケージを再インストールする必要はありませんが、次のようにキーを変更するだけです。

期限切れであることを確認するためのキーをリストします。

apt-key list | grep "expired:"

キーを交換してください:

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

ここで確認できるように、番号0xd68fa50fea312927は現在有効なキーID(2019-10-09に期限切れ)です


1
これは本当に役に立ちました。
Anil Chaudhari、

これは、ここで詳細に説明されている方法だと思います:futurestud.io/tutorials/…。これでうまくいきました。
リトルブレイン

9

2016年1月11日にバージョン3.2.1がリリースされたようで、パッケージのシグネチャはこの瞬間から悪いです。パッケージの署名は前日に問題ありませんでした。

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


1
--force-yesを使用しましたが、このソリューションを使用するリスクはありますか?
Lam

1
2016年3月、まだ修正されていません。
レトロ

8
2017年10月のまま
Aitor AznarÁlvarez

4
2018年1月、まだあります。
コスタノス

3
そしてまだ2018年3月
Waqas Malik

9

Ubuntu 16.04にMongoDB 4.0をインストールするときにも、この問題に直面しました。だから私はしました。

  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

どうやら問題は手順2で解決され、ubuntu key-storeに公開鍵をインポートします。答えてくれてありがとう!
Anand Vaidya

7

以下のコマンドを使用してubuntu 16.04にMongoDB 3.2をインストールするときにも、この問題に直面しました。以下のソリューションは、MongoDBのv3.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

上記の更新コマンドを実行した後、私は次の警告を見つけました

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 <packaging@mongodb.com>

これは、MongoDBの現在の安定リリースが現在(3.4.9)であるため、理にかなっています。

最初に問題を修正するために、小さなクリーンアップを行います(オプション)

  1. 追加された古いキーを削除します

    sudo apt-key list //すべてのキーを一覧表示します

    sudo apt-key del EA312927 //削除するキーのuidを見つける

    apt-keyリスト| grep Mongodb //削除されたかどうかを確認する

  2. 次に、/ etc / apt / sources.list.dに追加されたMongoDBリポジトリを削除します

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

  3. 次のコマンドを使用して、MongoDB(3.4.9)の最新の安定バージョンをインストールします。

Ubuntu Package Managerが使用する公開鍵をインポートする

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

3

私は同じ問題を抱えていましたが、tarballメソッドでmongodbをインストールすることで解決しました。詳細については、以下のリンクを参照してください。

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

以下に詳細を追加

  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. エクスポートPATH = / bin:$ PATH

  5. 次にmongodを実行します(dbパスを設定する必要があるかもしれません)


1
リンクを提供することは良いことですが、ここで解決策を説明してください
Nehal

1
私はそれを行うことができますが、私はそれが必要ではないだろうと思ったので、リンク自体は..十分な詳細を説明
ハリソンHyunminチョー

2

実際には、問題を解決するには次のことが非常に重要です

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

1

私は同じ問題を抱えていたので、私はしました:

root@skarabi:~# apt remove mongodb-org

次に:

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

後:

root@skarabi:~# apt update


それはあなたのマシンからMongoDBリポジトリを削除するだけでしょうか?次に、どのようにインストールしますか?
コリンニコルソン

そしてそれをインストールすると、このリンクで確認できます:docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu GPGキーさえあります。私と一緒に
使え

これは危険で悪いです。apt remove最新のキーを取得するためだけにマシンからMongoをアンインストールする理由はありません。aptソースの更新されたキーを取得するためだけに、データベース全体を破壊します。
BoomShadow

1

dlopatinの回答を使用して、Ubuntu 18.04のコードが機能しなくなったため、これを思いつきました。

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. リストキー sudo apt-key list
  2. 有効期限が切れたものを取得し、次の行に指紋を印刷します grep -A 1 "\[expired:"
  3. sedを使用して、スペース^\s\{1,10\}で始まる行のみを抽出し、英数字を選択して、\(\w*\)それらの行を選択したグループであるフィンガープリント\1に置き換え、返されたすべての行について繰り返しg、次にフィンガープリントを印刷しpます。それは与える:sed -ne 's|^\s\{1,10\}\(\w*\)|\1|gp'
  4. '\ n'のデリミタ付きのxargsを使用します。そうしないと、スペースでxargs -d '\n'分割されます。次に、フィンガープリントを引数としてapt-keyにsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys渡して更新します。xargs -d '\n' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys

うまくいけばそれは明らかです。apt-key出力解析に関する警告を無視します:)


0

同様の問題が発生し、Google CloudのUbuntu 18.04インスタンスにMongoDB 4.2をインストールしているときに次のエラーが発生しました。

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

私から働いた解決策は、キーを取得するために次のコマンドを実行することでした。MongoDBの公式Jira課題ページでこれを見つけました。

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

この解決策はMongoDBの公式Jiraの問題で見つかりました。これは問題へのリンクです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.