누락 된 GPG 키를 수정하는 방법?


154

방금 Ubuntu 12.04를 설치하고 일부 저장소를 추가했으며했을 때 apt-get updategpg 키가 누락되었습니다.

다음 명령이 작동하지 않는 것 같습니다.

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

이 문제를 해결하는 방법?


1
이 질문에 대한 답이 왜이 오류가 처음에 발생하는지, 그리고 나중에 그것을 피하기 위해해야 ​​할 일이 포함되어 있다면 좋을 것입니다.
Flimm

Y-ppa-manager를 사용하여 문제를 해결했습니다. 솔루션에 대해 Ashu에게 감사드립니다!

1
스크린 샷과 자세한 솔루션 opensourceforgeeks.blogspot.in/2013/04/...
아니 켓 딴

답변:


222

이 솔루션이 마음에 들었고 Ubuntu 키 서버에서 누락 된 키를 다시 다운로드하십시오.

우분투

나의 경우에는

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

다음은 오류 메시지에 언급 된 누락 된 키를 추가하는 명령입니다.

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

그래서 나는 누락 된 키를 가져 와서 2EA8F35793D8809Akeyserver.ubuntu.com에게 apt에있는 키 목록에 추가하도록 요청하십시오.

리눅스 민트
의 경우 키 서버 가 약간 다릅니다keyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

시도 할 대체 키 서버
keyserver.ubuntu.com


1
askubuntu.com/a/136735/10998 이 작동하지 않았습니다.
nelaaro

5
이 작업을 수행 할 때 보안 상 영향이 있습니까? 기본적으로 http를 통해 공개 키를 다운로드하고 있습니다.
Ajedi32

1
@iamcreasy, 설치하는 패키지가 안전하고 맬웨어가 없음을 우분투 설치에 증명하기 위해 각 패키지는 우분투 키 서버에 의해 서명됩니다. 따라서 설치 프로그램은 설치중인 패키지가 신뢰할 수 있고 검증 된 소스인지 확인합니다. 나는 그것에 대해 정말 좋은 문서를 찾지 못했지만 이것은 도움이 될 것이다 [gpg doc] ( help.ubuntu.com/community/… )
nelaaro

1
필요한 키를 추가 adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}하고 중복되거나 문제가되는 키를 제거 하는 기능을 만들었습니다 .grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo

1
나는 추천한다 --keyserver ha.pool.sks-keyservers.net. 고 가용성 키 서버 풀이므로 원하는 키를 얻을 가능성이 크게 높아집니다.
새처럼 로빈

21

Y PPA managerGPG 키 오류를 해결하는 데 도움 이되는 소프트웨어가 있습니다.
Y PPA 관리자

설치하기 위해서 -

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

설치가 시작되면 advance"가져온 모든 GPG 키 가져 오기" 로 이동 하십시오.


2
이 명령에 sudo를 추가해야합니다! sudo apt-get...
Fih

이것은 나에게도 도움이되었으며 Y PPA 관리자의 깨끗하고 사용하기 쉬운 인터페이스에 매우 감명 받았습니다. 감사합니다 .Ashu.
CoalaWeb

당신이 한 말을했지만 아무 일도 없었습니다. 메뉴의 어느 곳에서도 앱을 찾을 수 없음을 의미합니다.
Cristiana Nicolae

@CristianaNicolae 일단 설치되면 응용 프로그램> 시스템 도구에서 Y PPA 관리자를 찾을 수 있습니다.
Ashu

미안하다 Ashu, 나는 점검했다. 나는 아직도 거기에서 그것을 볼 수 없습니다. 시스템 어딘가에 설치된 것으로 보이지만 어떤 이유로 든 메뉴의 어디에도 표시되지 않습니다.
Cristiana Nicolae

14

apt-key adv --recv-keys방화벽 뒤에서 사용하는 자동 다운로드 가 작동하지 않을 수 있습니다.

이 경우 웹 브라우저에서 Ubuntu Key Server 웹 페이지를 열고 문자열을 검색하십시오 0x<hexadecimal code of your missing key>.

섹션 에서 링크를 엽니 다 . 키 내용 (에서 -----BEGIN PGP PUBLIC KEY BLOCK-----~까지 -----END PGP PUBLIC KEY BLOCK-----)을 파일로 저장하십시오 .

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

sudo apt-key add <file-with-saved-key>

출처 : http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html


12

먼저 터미널에 다음 명령을 입력하십시오

 sudo rm /var/lib/apt/lists/* -vf

그런 다음 터미널에 다음 명령을 입력하여 시스템을 업데이트하십시오

 sudo apt-get update && sudo apt-get upgrade

그 후에는 오류가 없어야하며 모든 것이 잘 작동합니다.


회신 thx. 내 문제에 대한 해결책은 매우 간단했습니다. sudo su위의 명령을 입력 하기 전에 입력하십시오
Fih

그것이 당신에게 도움이 될 것이지만 sudo su, 올바른 접근 방식은 아닙니다.이 경우에는 sudo -s필요한 것을 수행 했을 것입니다.
guntbert

나는 당신이 의미하는 것 같아 sudo rm /var/lib/apt/lists/* -rf( "v"대신 "r"옵션)
Oliboy50

9
모두를 사용 sudo하고하는 것은 rm위험합니다. 모두를 사용 rm하고하는 것은 *위험합니다. 같은 명령에 3을 사용하면 상어가 당신이나 당신의 파일을 물게됩니다.
JB.

이것은 나를 위해 작동하지 않습니다.
WiSaGaN

9

Ubuntu 12.04 Precise : 영구 솔루션

이 오류 메시지는 새 리포지토리를 추가하고 리포지토리 목록을 업데이트 한 후에 발생합니다. 주소가 더 이상 유효하지 않은 서버 때문입니다. 따라서 주소를 좋은 주소로 변경하십시오.

  1. ~/.gnupg/gpg.conf텍스트 편집기로 파일 을여십시오.

    터미널에서 : gedit ~/.gnupg/gpg.conf

  2. 그런 다음이 파일에서 다음과 같이 굵은 선 (116 번째 줄)을 찾으십시오 (기본값은 다음과 같습니다).

    [...]
    키 서버 hkp : //keys.gnupg.net
    # 키 서버 mailto : pgp-public-keys@keys.nl.pgp.net
    # 키 서버 ldap : //keyserver.pgp.com

  3. 다음 굵은 선을 추가하여 최종적으로 다음 결과를 제공하십시오.

    (이전 주소를 주석 처리하려면 다음과 같이 두 번째 줄에 #을 추가하십시오)

    [...] 키 서버 hkp : //keys.gnupg.net # 키 서버 mailto : pgp-public-keys@keys.nl.pgp.net # 키 서버 ldap : //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. 파일을 저장하고 다시 업데이트하십시오.

    터미널에서 : sudo apt-get update


7

nelaar 답변을 기반으로 :

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

스크립트는 모든 오류를 임시 파일로 덤프 한 다음 반복하여 누락 된 키를 가져옵니다.


6

가장 쉬운 방법은 Y PPA MAnager입니다

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

대시에서 Y PPA 관리자 열기

여기에 이미지 설명을 입력하십시오

관리자 비밀번호를 입력하십시오

여기에 이미지 설명을 입력하십시오

고급 옵션 두 번 클릭

여기에 이미지 설명을 입력하십시오

누락 된 모든 GPG 키 가져 오기 시도를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

확인을 클릭하여 수정하십시오.


4

먼저 터미널에 다음 명령을 입력하십시오

sudo rm /var/lib/apt/lists/* -vf

그런 다음 터미널에 다음 명령을 입력하여 시스템을 업데이트하십시오

sudo apt-get update && sudo apt-get upgrade

그 후에는 오류가 없어야하며 모든 것이 잘 작동합니다.


2

나를 위해 일한 것은 먼저 키를 삭제 한 다음 다시 설치하는 것이 었습니다. 이를 달성하기 위해 다음을 수행했습니다.

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

로 삭제

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

그런 다음 다음을 입력하여 다시 설치하십시오.

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

1

ppa ( ppa:nathandyer/vocal-stable) 를 추가하여 동일한 문제가 발생하여 리포지토리가 손상되었습니다 . Web Upd8의 저자 로부터이 문제를 해결하는 방법에 대한 안내를 받았습니다. 다음은 그의 단계입니다.

.gpg문제가 발생할 경우를 대비 하여 키를 백업하십시오 .

백업을 보관할 폴더를 만들 수 있습니다.

  • mkdir ~/gpg-backups

    /etc/apt/trusted.gpg.d/폴더의 모든 파일을 백업 합니다.

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

이제 모든 .gpg키를 제거하겠습니다 .

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

소프트웨어 및 업데이트의 "인증"탭에서 "기본값 복원"을 클릭하십시오.

누락 된 모든 GPG 키를 가져 오려면 y-ppa 관리자를 설치하십시오.

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

참고 :


1
한 줄에 오류가있는 것 같습니다 sudo rm /etc/apt/trusted.gpg.d/*. 옵션이 지정되지 않은 경우 *비어 있지 않은 디렉토리를 제거 할 수 없으므로 EOL에서 생략 할 수 는 없습니다 . 파일 을 이동 하면 나중에 소스 파일 이 필요하지 않기 때문입니다. rm-rsudo mv /etc/apt/trustdb.gpg ~/gpg-backups/rm
구문 오류

1

bash 스크립트에서 이와 같은 오류를 자동으로 수정하고 싶었습니다. 관심있는 사람이라면 누구나 트릭을 수행해야합니다.

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi

0

이와 같은 것이 있다면 :

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

우선 시도 :

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

마지막 명령의 출력은 다음과 같습니다.

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

따라서 /etc/apt/trusted.gpg.d/사용하지 않는 키로 이동하여 제거한 다음 반복 apt-key adv하고aptitude update


0

운영 wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -


-1

독일어 설정을 사용하여 12.04를 설치할 때이 문제가 발생했습니다. 그런 다음 리포지토리 목록은 기본적으로 독일어 미러 리포지토리를 사용합니다. 이 경우 리포지토리 목록을 편집하고 모든 독일어 미러 리포지토리를 Ubuntu 표준 리포지토리로 변경할 수 있습니다.

다음 방법을 사용할 수 있습니다.

sudo nano /etc/apt/sources.list

Alt-를 사용하여 Nano에서 검색 및 교체r

검색 (대체) : /de.

다음으로 교체하십시오. /

모두 교체 (을 누름 A)

파일 저장 Ctrl-x

그런 다음 터미널에 다음 명령을 입력하여 시스템을 업데이트하십시오.

sudo apt-get update && sudo apt-get upgrade

이 후에는 오류가 없어야하며 모든 것이 제대로 작동해야합니다.


2
이것은 특히 소스를 사용하지 않았다는 점을 고려할 때 특히 OP 질문에 대답하지 않습니다.
Kevin Bowen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.