“GPG 오류 : 릴리스 : 다음 서명이 잘못되었습니다 : BADSIG”


88

터미널 에서이 명령을 실행했습니다.

sudo apt-get update

업데이트는 다음 오류 보고서로 종료됩니다.

W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key <ftpmaster@ubuntu.com>

W: GPG error: http://ppa.launchpad.net precise Release: The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release  

이것이 무엇을 의미하며 왜 발생합니까?


4
12.04를 처음 설치할 때 비슷한 문제가 발생했습니다. 그 후 인도의 소프트웨어 관리자에서 다른 서버로 "소프트웨어 소스"를 변경했습니다. 이제이 문제가 보이지 않습니다. 인도 서버를 사용하는 경우 변경하여 알려주십시오.
— Abhijeet

감사합니다 Abhijeet. 나는 인도인이지만 카타르에 머무르고 서버를 사우디 아라비아로 변경했지만 같은 결과를 얻었습니다.
— beeju

답변:


90

이 시도:

sudo apt-get clean
sudo mv /var/lib/apt/lists /tmp
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get clean
sudo apt-get update

4
partial하위 디렉토리 를 만들 필요가 없습니다 . sudo apt-get update그 자체를 할 것입니다.
— 바이트 사령관

9
위의 작업을 수행 한 후에도 여전히이 오류가 발생합니다.Reading package lists... Done W: GPG error: http://developer.download.nvidia.com Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F60F4B3D7FA2AF80
— Mona Jalal

요청한 질문에 답할 가치가 있습니다 (그리고 더 많은 공의를 벌 수 있습니다 ;-)).
— Witold Kaczurba

두 번째 단계에서 오류가 발생했습니다 :mv: cannot move '/var/lib/apt/lists' to '/tmp/lists': Directory not empty
— 인터넷 사용자

이것이 정확히 무엇을 할 수 있습니까? 감사합니다
— Hendrik

64

해당 리포지토리의 gpg 키가 apt-key 데이터베이스에 없기 때문에이 메시지가 표시됩니다.

키를 가져 오려면 터미널을 열고 다음 명령을 입력하십시오

gpg --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192 

pgp 키는 대부분 여러 키 저장소에 배포됩니다. 우분투 관련 키는 일반적으로에 keyserver.ubuntu.com있습니다. 그러나 이것이 실패하면 대안을 사용할 수 있습니다. 처럼 -

gpg --keyserver hkp://subkeys.pgp.net --recv-keys 16126D3A3E5C1192

영숫자 부분을 특정 키로 바꿔야합니다. 열쇠가 당신이 신뢰하는 열쇠인지 확인하십시오 . 이 키가있는 모든 저장소는 경고없이 모든 패키지를 설치할 수 있습니다.

위의 내용이 성공하면 다음과 같은 결과가 나타납니다.

gpg: Total number processed: 1
gpg:               imported: 1

그런 다음이 명령을 실행하십시오.

gpg --export --armor 16126D3A3E5C1192 | sudo apt-key add - 

-뒤에 부호를 적어 둡니다 add.

그러면 sudo apt-get update이 후에는 그러한 메시지가 표시되지 않습니다.


1
Hi @ anwar 신뢰하는 키를 어디서 / 어떻게 얻습니까?
— Minnie Shi

1
@MinnieShi 키는 오류 메시지 자체에 있습니다The following signatures were invalid: BADSIG 16126D3A3E5C1192
— Kalyan Raghu

1
이 apt-key add명령은 "OK"를 반환해야합니다.
— 코일

대단한 대답이어야합니다! 감사.
— 야곱

13

나는 그냥하고 있음을 발견했다.

sudo rm -rf /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists

나를 위해 일했다.


sudo rm -rf / var / lib / apt / lists / * && sudo mkdir -p / var / lib / apt / lists를 사용하여 / var / lib / apt / lists 권한이 가진 모든 것을 보존하십시오
— 131

1
partial하위 디렉토리 를 만들 필요가 없습니다 . sudo apt-get update그 자체를 할 것입니다.
— 바이트 사령관

9

사용하는 PPA에 대한 모든 GPG 키를 자동으로 받도록 스크립트를 사용해보십시오 : smartupdate.sh .

시작한 apt-get update다음 모든 GPG 오류를 찾고 찾은 GPG 서명에 대한 키를받습니다. 귀하의 경우, 그것은 단지 시작됩니다

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4C1CBC1B69B0E2F4

그러나 서명되지 않은 PPA를 몇 개 추가하면 GPG 키를 수동으로 추가하는 것이 지루해집니다. :)


6

다음 명령으로 문제가 해결되었습니다.

sudo -i
apt-get clean
cd /var/lib/apt
mv lists lists.old
mkdir -p lists/partial
apt-get clean
apt-get update

1
partial하위 디렉토리 를 만들 필요가 없습니다 . sudo apt-get update그 자체를 할 것입니다.
— 바이트 사령관

4

비슷한 오류가 발생했습니다. 그러나 대신 PostgreSQL 저장소를 BADSIG얻었 KEYEXPIRED습니다.

W: A error occurred during the signature verification.
  The repository is not updated and the previous index files will be used.
  GPG error: http://apt.postgresql.org precise-pgdg Release:
  The following signatures were invalid: KEYEXPIRED 1381654177

해결책은 여기에 완벽하게 설명되어 있지만 이것이 내가 해결하기 위해 한 것입니다.

$ sudo apt-key list | grep -B1 PostgreSQL
$ sudo apt-key del ACCC4CF8
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

이제 $ sudo apt-get update완벽하게 작동합니다!


1

actionparsnip 의이 팁 은 저에게 효과적 이었습니다.

시험:

sudo fuser -vvv /var/lib/dpkg/lock
sudo rm /var/lib/apt/lists/lock
sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
sudo rm -rf /var/lib/dpkg/updates/*
sudo rm -rf /var/lib/apt/lists
sudo rm /var/cache/apt/*.bin
sudo mkdir /var/lib/apt/lists
sudo mkdir /var/lib/apt/lists/partial
LANG=C;sudo apt-get clean
LANG=C;sudo apt-get autoclean
LANG=C;sudo apt-get --purge autoremove
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824
sudo dpkg --clear-avail
sudo dpkg --configure -a
LANG=C;sudo apt-get -f install
LANG=C;sudo apt-get --fix-missing install
LANG=C;sudo apt-get update -o APT::Cache-Limit=25165824 && sudo apt-get dist-upgrade

:에서 발견
https://answers.launchpad.net/ubuntu/+source/update-manager/+question/194077


1

이는 HTTP 프록시의 캐싱 문제 때문일 수 있습니다. 나 같은 경로를 따라 어딘가에 있다면 Apt에게 캐시를 일시적으로 우회하도록 요청할 수 있습니다.

sudo apt-get update -o Acquire::http::No-Cache=True

-2

launchpad-getkeys이 문제를 해결 하는 데 사용할 수 있습니다 . 터미널을 열고 다음을 입력하십시오.

sudo apt-get install launchpad-getkeys
sudo launchpad-getkeys

그때

sudo apt-get update
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.