GPG 오류“NO_PUBKEY”를 어떻게 수정합니까?


364

Software Sources 프로그램으로 추가 리포지토리를 추가했습니다. 그러나 패키지 데이터베이스를 다시로드하면 다음과 같은 오류가 발생합니다.

W : GPG 오류 : http://ppa.launchpad.net trusty InRelease : 공개 키를 사용할 수 없기 때문에 다음 서명을 확인할 수 없습니다. NO_PUBKEY 8BAF9A6F

apt-key공식 우분투 문서에 따르면 터미널에서 사용하여 문제를 해결할 수 있다는 것을 알고 있습니다 . 그러나 그래픽으로하고 싶었습니다. 터미널을 사용하지 않고 이것을 수행하는 방법이 있습니까?



'평균'? 그게 무슨 뜻인지 궁금 하군
Michael Scheper

1
SO 스레드 에서 솔루션을 확인할 수 있습니다 . 관련 사이트에
Aniket Thakur

@MichaelScheper '터미널을 열지 않는 수단이 있습니까?' = ~ '터미널없이 할 수있는 방법이 있습니까?'
Wilf

@Wilf : 아! 나는 문법을 nitpick하는 것을 의미하지는 않지만 나를 혼란스럽게했습니다. 방금 확인한 참조에서 '평균'은 단수 명사이며 의미하는 명사입니다. dictionary.cambridge.org/dictionary/english/means 그러나 귀하와 Agmentor가 질문의 문법이 정확한 일부 변형 영어를 사용하는 경우 관심이 있기 때문에 참조를보고 싶습니다. 그런 종류의. ☺
Michael Scheper

답변:


211

지금까지 이것을 처리하는 가장 간단한 방법은 Y-PPA-Manager를 사용하는 것입니다 (이제는 launchpad-getkeys스크립트를 그래픽 인터페이스와 통합 함 ).

  1. 설치하려면 먼저이 프로그램에 대한 webupd8 저장소를 추가하십시오.

    sudo add-apt-repository ppa:webupd8team/y-ppa-manager
    
  2. 소프트웨어 목록을 업데이트하고 Y-PPA-Manager를 설치하십시오.

    sudo apt-get update
    sudo apt-get install y-ppa-manager
    
  3. y-ppa-manager를 실행하십시오 (예 : 입력 y-ppa-manager한 후 Enter 키를 누르십시오).

  4. 기본 y-ppa-manager 창이 나타나면 "고급"을 클릭하십시오.

  5. 고급 작업 목록에서 "누락 된 모든 GPG 키 가져 오기 시도"를 선택하고 확인을 클릭하십시오.

    끝났습니다! 작업을 시작할 때 경고 대화 상자에서 알 수 있듯이 PPA 수와 연결 속도에 따라 시간이 다소 걸릴 수 있습니다 (약 2 분).


18
X11을 설치하기 때문에 웹 서버에서는 실제로 유용하지 않습니다. 서버 에디션 인 경우이 방법을 사용하지 마십시오. karthick87의 답변을 확인하십시오!
goncalotomas

2
이렇게하면 가져온 키를 확인할 수 있습니까, 아니면 단순히 모든 것을 맹목적으로 가져오고 있으므로 PPA가있는 모든 사람을 신뢰합니까?
Paŭlo Ebermann

2
시스템에 추가 한 모든 PPA에 대한 키를 가져오고 신뢰합니다. PPA를 신뢰하고 apt를 통해 추가하기 전에 PPA를 확인했다고 가정합니다.
monotasker

6
이 답변은 쉽게 훨씬 , 실제로이 "그래픽"대답보다 적은 수의 명령이 필요합니다.
jpaugh

1
그러나 질문은 그래픽 방법을 요구했다.
monotasker

555

터미널에서 다음 명령을 실행

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

<PUBKEY>저장소에 누락 된 공개 키는 어디에 있습니까 ( 예 :) 8BAF9A6F.

그런 다음 업데이트

sudo apt-get update

대체 방법 :

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

를 사용하여 이와 같은 apt-key키를 가져 오면 시스템에서 사용할 소프트웨어에 서명하기 위해 가져 오는 키를 신뢰한다고 시스템에 알리는 것입니다. 키가 실제로 패키지 배포자의 키인지 확실하지 않으면이 작업을 수행하지 마십시오.


2
@Naruto 정상입니다. 그것은 의미 한다는 목록이 서버에서 변경되지 않았습니다.
ζ--

9
단순히 NO_PUBKEY키 매개 변수로 값을 전달할 수 있습니다 . 예를 들어 GPG 오류 [...] NO_PUBKEY 3766223989993A70 => sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3766223989993A70
SMMousavi

23
8BAF9A6F <-그 번호는 어디서 얻었습니까?
Olivier Lalonde

13
숫자 8BAF9 ...는 원래 오류에서 볼 수있는 것입니다. NO_PUBKEY 8BAF와 같은 것입니다 ...
Alex

9
누군가가 나와 저장소 사이의 데이터를 변조하고 서명 한 물건을 대체하면 사용하는 키를 거의 맹목적으로 추가하는 것만으로도 나빠질 것입니다. 그렇다면 키가 올바른지 확인하는 프로세스는 무엇입니까?
mc0e

43

저장소에 적합한 공개 키가없는 경우 발생합니다.

이 문제를 해결하려면 다음 명령을 사용하십시오.

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

우분투 키 서버에서 키를 검색합니다. 그리고 이것은 :

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

신뢰할 수있는 키에 키를 추가합니다.

해결책은 여기여기여기 에서 찾을 수 있습니다 .


4
hkp : //keyserver.ubuntu.com이 작동하지 않으면이 pgpkeys.mit.edu서버를 사용하십시오 .
RajaRaviVarma

1
이 답변은 Kylin 저장소와 관련된 문제를 해결했습니다. sogou pinyin 입력 방법이 소스를 /etc/apt/sources.list.d/폴더에 추가 했지만 gpg 키를 가져 오지 않은 것 같습니다. 좋은 대답, 간단하고 요점, +1!
Sergiy Kolodyazhnyy

1
감사! PHP 저장소 문제를 해결하기 위해 일했습니다.
Akash Agarwal

1
이 답변은 다음에 대한 내 업데이트를 해결했습니다.http://ppa.launchpad.net/webupd8team/java/ubuntu xenial InRelease
mvw

그리고 아마도 시스템의 키를 생성하지 않았을 가능성이 있습니다. - 그러므로 위의 단계를 사용하여 다음과 같은 이전 gpg --gen-key (참조 - packaging.ubuntu.com/html/getting-set-up.html )
parasrish을

35

키를 가져와야합니다.

PPA에서 키를 얻으려면 PPA의 런치 패드 페이지를 방문하십시오. 런치 패드의 모든 PPA 페이지에서 '이 PPA에 대한 기술적 세부 사항'(1)을 클릭하면이 링크 (2)를 찾을 수 있습니다.

이미지 1

이를 따라 키 ID 링크 (3)를 클릭하십시오.

이미지 2

페이지를 저장하십시오. 이것이 핵심 파일입니다.


이제 가져올 시간입니다 :

  • Applications > Software Center,
  • Edit > Software sources...,
  • 비밀번호를 입력하십시오
  • Authentication탭으로 이동하여을 클릭하고 Import Key File...마지막으로
  • 저장된 키 파일을 선택하고를 클릭하십시오 OK.

1
시간을 잃지 마십시오. 아래 답변을 참조하십시오.
Felipe

5
@FelipeMicaroniLalli, 문제는 터미널이 아닌 GUI를 사용하여 펍 키를 추가하는 방법 이었습니다.이 답변은 완벽했습니다.
크리스 우즈

그것은이다 훨씬 Y-PPA-관리자 (또한 GUI 응용 프로그램)이 작업을 수행하기 위해 지금보다 쉽고 빠르게. 아래 답변을 참조하십시오.
monotasker

1
그러나 저장소가 우분투 ppa가 아닌 경우 어떻게해야합니까? 예를 들어 인텔은 download.01.org
mc0e

훌륭한 단계별 가이드, 대단히 감사합니다! 를 통해 키를 추가하지 못한 일부 사용자에게 정말 도움이됩니다 apt-key.
Roy Ling

12

apt는 /etc/apt/trusted.gpg.d에서 40 개의 키만 처리 할 수 ​​있습니다. 41 개의 키를 누르면 누락 된 키를 추가하기위한 모든 단계를 수행하더라도 GPG 오류 "공개 키를 찾을 수 없음"이 표시됩니다.

더 이상 사용하지 않는 ppa에서이 파일에 사용되지 않은 키가 있는지 확인하십시오. 모두 사용중인 경우 /etc/apt/trusted.gpg.d에서 해당 키 파일과 함께 일부 ppa를 제거하십시오.

또한

sudo apt-key adv

보안 위험으로 간주 되며 여러 가지 이유로 키를받는 안전한 방법이 아니기 때문에 " 전체 보안 개념을 훼손하고 있으므로 권장 하지 않습니다 (예 : hkp는 일반 텍스트 프로토콜, 짧고 긴 키 ID를 위조 할 수 있습니다. ) ". http://ubuntuforums.org/showthread.php?t=2195579

누락 된 키를 추가하는 올바른 방법 (예 : 1ABC2D34EF56GH78)은 다음과 같습니다.

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -

1
/etc/apt/trusted.gpg.d에서 모든 키를 삭제 한 다음 승인 된 답변 askubuntu.com/a/386003/284664
janot

@mchid이 41 개의 키 제한에 대해 설명하는 문서 / URL을 인용 해 주시겠습니까?
SebMa

@SebMa 링크는 내 답변에 게시되어 있으며이 제한에 영향을받는 데비안 버그를 참조합니다. 다음은 링크 내의 실제 게시물에 대한 앵커입니다. ubuntuforums.org/showthread.php?t=2195579#post_message_12882784 실제 문서가 있는지 확실하지 않지만 "40 "는 여러 언어로"많이 "로 번역됩니다.
mchid

@SebMa 그러나,이 답변이있을 때와 얼마 후에도 한도가 존재했거나 존재했습니다. 나는 개인적 으로이 41 키 제한을 경험 했으며이 오류를 피하기 위해 40 키가 이미 존재할 때 사용하지 않는 키를 삭제하여 새 키를 추가하여이를 수정했습니다.
mchid


9

WebUpd8 PPA에는 작은 .deb 다운로드로 링크 된 작은 스크립트가 포함되어 있으므로 누락 된 모든 GPG 키를 자동으로 가져 오는 전체 PPA를 추가 할 필요가 없습니다.

Launchpad-getkeys를 다운로드하여 설치 하십시오 (버전에서 ~ natty를 무시하고 Karmic에서 Oneiric까지 모든 우분투 버전에서 작동합니다). 일단 설치되면 터미널을 열고 다음을 입력하십시오.

sudo launchpad-getkeys

프록시를 사용하는 경우 상황이 조금 더 복잡하므로 자세한 내용은 이 항목 을 참조하십시오


1
귀하의 웹 사이트에서이 프로그램이 제공되는 것을 보았으므로 실제로 지금하는 방식입니다. 그럼에도 불구하고 질문의 목표는 그래픽 방식으로 어떻게 하는지를 아는 것이 었습니다.
Agmenor

런치 패드 -getkeys 스크립트가 이제 Y-PPA-manager 프로그램에 통합되었습니다. launchpad.net/~webupd8team/+archive/y-ppa-manager
monotasker

5

Heroku를 설치하는 동안 같은 문제에 직면했습니다. 아래 링크는 내 문제를 해결했습니다.

http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html

정착 후 NO_PUBKEY문제를 아래의 문제가 남아

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>

이를 해결하기 위해 터미널에서 다음 명령을 실행했습니다.

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

출처- 해결 링크


4

다음을 apt-transport-https설치 했는지 확인하십시오 .

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

리포지토리 추가 :

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

Linux 용 Skype를 설치하십시오.

sudo apt-get update 
sudo apt-get install skypeforlinux -y

출처 : https://community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-verified-because-the/td-p/4645756


3

보다 일반적으로 모든 저장소에 대해 다음 방법이 작동해야합니다. 우선 검색 엔진의 도움을 받아 프로그램 제공 업체의 웹 사이트에서 다음과 같은 텍스트를 검색합니다.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

이러한 텍스트는 예를 들어 http://deb.opera.com에 표시됩니다 . 구절을 복사하여 바탕 화면에서 만든 빈 파일에 붙여 넣습니다. 키 파일이 생성됩니다.

그런 다음 키 가져 오기를 계속하십시오.

  • 응용 프로그램> Sofware Center
  • 편집> 소프트웨어 소스 ..., 비밀번호 입력
  • 인증 탭에서 '키 파일 가져 오기 ...'를 클릭하십시오.
  • 저장된 키 파일을 선택하고 '확인'을 클릭하십시오.

이제 이전에 작성된 키 파일을 제거 할 수 있습니다.


3

좋은! 나는 마침내 길을 찾았다!

GPG 오류 NO_PUBKEY 를 해결하기 위해 모든 방법을 테스트 했지만 아무것도 작동하지 않습니다.

/etc/apt/trusted.gpg.d 폴더의 전체 내용을 삭제했습니다

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

그리고 나는 모든 pubkey를 수동으로 (너무 많이) 생성하기에는 너무 게으 르기 때문에 Y-PPA-Manager 방법을 사용합니다 : http://www.unixmen.com/fix-w-gpg-error-no_pubkey-ubuntu/

sudo apt-get update를 다시 실행하면 마지막으로 모든 것이 잘 작동합니다! 탱크!

기반 소스 : https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540의 17 번 게시물


이것은 나에게도 효과가 있었던 유일한 것입니다. 어딘가에 손상된 키 파일이 있습니까?
donnek

0

DynDNS의 업데이터 클라이언트와 같은 문제가있었습니다.

키가 만료 된 것으로 나타났습니다.

소프트웨어를 다시 설치 ( .deb웹 사이트에서 새 소프트웨어를 다운로드 한 다음 Software Center를 사용하여 다시 설치)하면 문제가 해결되었습니다.

참조 용 오류 메시지 :

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.