web-dev-qa-db-ja.com

MongoDB GPG-無効な署名

Ubuntu 14.04マシンにMongoDBをインストールします。手順は次のとおりです 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なしで使用された

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

85
Assaf Hershko

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キーサーバーからキーを更新します。

ソース

263
dlopatin

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

お役に立てれば !

41
PyDevSRS

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

キーをリストして、有効期限が切れていることを確認します。

apt-key list | grep "expired:"

キーを交換します。

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

番号0xd68fa50fea312927は現在の有効なキーIDです(2019-10-09で期限切れになります)。これは here で確認できます。

14
Juliano ENS

バージョン3.2.1は2016年1月11日にリリースされたようで、パッケージの署名はこの時点から悪いです。前日、パッケージの署名は正常でした。

参照: 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

8
themr0c

また、以下のコマンドを使用して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 <[email protected]>

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
5
nshah143

私も同じ問題を抱えていましたが、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. export PATH =/bin:$ PATH

  5. その後、mongodを実行します(dbパスの設定が必要な場合があります)

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

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

root@skarabi:~# apt remove mongodb-org

次に:

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

後:

root@skarabi:~# apt update

1
Zineb SKARABI

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

$ Sudo rm /etc/apt/sources.list.d/mongodb*.list
0
Raymond