MongoDB GPG-유효하지 않은 서명


98

https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ 의 지침을 사용하여 Ubuntu 14.04 시스템에 MongoDB를 설치하고 있습니다.

그래서 나는 다음을 실행합니다.

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
마이크

1
문제는 Feb'18 여기에 여전히, 그리고 작업 솔루션은 아래에있다, 그러나 하나가 허용되지 않습니다 : stackoverflow.com/a/46737148/2273305 @ 아사 프 - hershko, 가장 좋은 대답의 선택 변경을 고려하시기 바랍니다
후크

docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu의 공식 설치 문서에 따라 키를 가져 오는 것이 저에게 효과적 이었습니다. 2019년 6월 10일의로 실행되도록 명령은sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
Eborbob

답변:


286

하나의 명령으로 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
이것은 Mint에서 잘 작동했습니다. 참고 :의 인수 --recv-key는 만료 된 키입니다.
not2qubit

놀랍습니다. 감사합니다. 다른 응용 프로그램에서도 비슷한 문제를 해결했습니다. 나중에 사용할 수 있도록 파일에 저장해야합니다.
Yomi

12
몇 년 후 "허용 된 솔루션"에서 보는 사람에게는 이것이 가장 간단한 수정 방법입니다.
Nicholi

1
이것이 해결책입니다! @ assaf-hershko,이 솔루션에 대해 허용되는 솔루션을 변경하는 것을 고려하십시오!
hooke

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(공백이 포함 된 경우 따옴표로 묶음).
Laurence Gonsalves

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

5
필요한 유일한 단계는 키를 다시 가져 오기입니다 : //keyserver.ubuntu.com : ADV --keyserver HKP 쉽다 키를 sudo는 80 --recv EA312927
벤 맥캔

나를 위해 일했습니다. Ben이 말했듯이 다시 가져 오기가 키의 핵심이라고 생각합니다.
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
이것은 정말 나를 도왔습니다.
아닐 차우

나는 이것이 여기에 더 자세히 설명 된 방법이라고 생각합니다 : futurestud.io/tutorials/… . 이것은 나를 위해 일했습니다.
Little Brain

9

버전 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


1
--force-yes를 사용했습니다.이 솔루션으로 감수 할 위험이 있습니까?
Lam

1
2016 년 3 월, 아직 수정되지 않았습니다.
Retrography

8
아직 년 10 월 2017 년
토르 아스나르 알바 레즈

4
2018 년 1 월, 여전히 가지고 있습니다.
Kostanos

3
아직도 년 3 월 2018 년
Waqas 말리크

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 단계만으로 문제가 해결 된 것 같습니다. 답변 해주셔서 감사합니다!
Anand Vaidya

7

아래 명령을 사용하여 우분투 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 Current Stable Release가 현재 (3.4.9)이므로 이것은 또한 의미가 있습니다.

먼저 문제를 해결하기 위해 소규모 정리를 수행합니다 (선택 사항).

  1. 추가 된 이전 키를 제거합니다.

    sudo apt-key list // 모든 키 나열

    sudo apt-key del EA312927 // 삭제할 키의 uid 찾기

    적절한 키 목록 | 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
나는 그것이 필요하지 않을 것이라고 생각 때문에 나는 그렇게하지만, 그 자체가 충분한 정보를 설명 연결할 수 있습니다 ..
해리슨 현민 조

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 저장소가 제거되지 않을까요? 그럼 어떻게 설치 하시겠습니까?
Colin Nicholson

그런 다음 설치하면 다음 링크에서 확인할 수 있습니다. docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu GPG 키도 있습니다. 그것은 나와 함께 작동
Zineb SKARABI에게

이것은 위험하고 나쁘다. apt remove단순히 최신 키를 얻기 위해 컴퓨터에서 Mongo 를 (제거) 할 이유가 없습니다 . 적절한 소스에 대해 업데이트 된 키를 가져 오려고 시도하기 위해 전체 데이터베이스를 파괴 할 것입니다.
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 Issue Pages에서 이것을 찾았습니다.

/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.