GPG 공개 키를 추가하려고 할 때 키 서버 시간이 초과되었습니다


67

CPG로 프로그램을 설치하기 위해 공개 키를 추가하려고합니다. 그러나 나는 이것에 익숙하지 않지만 내가 찾은 모든 명령은 나에게 같은 오류를 주었다.

gpg --keyserver keyserver.ubuntu.com --recv-keys 94558F59
gpg: requesting key 94558F59 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

이것이 가능한 이유는 내가 어떤 종류의 봉쇄 뒤에있어 키 서버에 연결하는 것을 불가능하게 만드는 것 같습니다. 나는 많은 OP 질문을 조사하고 찾을 수있는 모든 명령을 시도했지만 아무것도 작동하지 않았습니다. 아무도 전에이 문제가 있었습니까?


다른 키 서버를 사용해 보셨습니까? hkp : //subkeys.pgp.net 또는 hkp : //pgp.mit.edu : 11371
jasonwryan

@jasonwryan Ive는 pgp.mit.edu를 시도했지만 hkp : //없이 사용하는 것이 중요합니까? 나는 그렇게 믿지 않지만 나를 위해 노력할만한 가치
Sander Van der Zeeuw

전체 주소와 대체 포트를 사용하십시오.
jasonwryan

@jasonwryan 여전히 그래도? : pgp.mit.edu : 연결 시간 초과 gpgkeys : HTTP 가져 오기 오류 7 : 연결할 수 없음 : 연결 시간 초과 gpg : 유효한 OpenPGP 데이터가 없습니다. GPG : 총 처리 : 0
샌더 반 데르 제우

3
gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59나를 위해 일했다 ...
jasonwryan

답변:


113

이것은 보통 방화벽이 포트를 막아서 발생합니다 11371. 방화벽에서 포트를 차단 해제 할 수 있습니다. 방화벽에 액세스 할 수없는 경우 다음 중 하나를 수행 할 수 있습니다.

  1. 80대신 포트를 사용하도록하십시오.11371

    gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94558F59
  2. 대안 적으로

    • 키 서버에서 키를 찾아서여십시오.
    • 내용을 텍스트 파일로 복사하십시오.
    • 시스템 도구> 환경 설정> 소프트웨어 소스> 인증> 키 추가로 이동하여 작성된 텍스트 파일을 선택하십시오. Ubuntu 14.04 이상의 경우 : 소프트웨어 센터-> 편집-> 소프트웨어 소스-> 인증-> 키 파일 가져 오기

5
gpg --import key.txt명령 행 FYI를 통해 가져와야하는 경우.
Banjer


2
다른 방법으로 찬성! 우분투 14.04 및 이후 버전에서 추가되었습니다 :Software Center -> Edit -> Software Sources -> Authentication -> Import key file
Roy Ling

rvm의 키를 설치하는 문제가 해결되었습니다. 다음 전화가 걸려 왔습니다 : hkp 서버 keys.gnupg.net에서 D39DC0E3 키 요청
mdgrech

4
"키 서버에서 키를 찾아서여십시오." 아무도 언급하지 않은 것은 그것이 어떻게 이루어 졌는가입니다. 필자의 경우 문제의 열쇠는 gpg.mit.edu입니다. 자, 쉽게, pgp.mit.edu 로 가서 키를 Search String필드에 붙여 넣으십시오 ! 잘못된. 마법의 비밀을 알아야합니다 0x. 키 앞에을 추가하십시오 . 키가 0F571F6C인 경우을 검색해야합니다 0x0F571F6C.
벤 존슨

19

sudo gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys SOMEKEY


6
sudo이 답변은 포스터의 문제에 아무 것도 추가하지 않습니다 ...
jasonwryan

4
나는 한 시간 전에이 작업을하고 있었고이 줄을 추가하면 문제가 해결되었습니다. 포트 80을 명시 적으로 지정하는 차이점이 있습니다. 또한 프로토콜을 명시 적으로 지정합니다. 당신은 sudo가 필요하지 않을 수도 있지만 내 대답은 약간의 관련 정보를 광고합니다. 아, 당신의 대답도 정확합니다.
Victor Piousbox

5
sudo를 제거하면 정답입니다.
jasonwryan

4
공개 키 서버에서 키를 받아야합니까? 난 그렇게 생각하지 않습니다 ...
jasonwryan 1

2
이 답변에 명시된 hkp : //를 추가하면 효과가 있습니다.
barryhunter

9

이것은 나를 위해 일했다 :

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv-keys AKEYXXX

너를 사랑해 !
Yasser Sinjab

7

GPG프록시 뒤에 키 를 추가하려고 할 때도 같은 문제가 발생했습니다 . 내 문제에 대한 해결책 은 다음 명령추가하는--keyserver-options 것이 었습니다 .

sudo apt-key adv --keyserver-options http-proxy=http://USER:PASSWORD@PROXY_URL:PORT/ --keyserver keyserver.ubuntu.com --recv-keys GPG_KEY

1

다른 서버에서 키를 가져와보십시오 (저에게 효과적).

gpg --keyserver hkp://keys.gnupg.net --recv-keys 94558F59

또는

gpg --keyserver hkp://pgp.mit.edu --recv-keys 94558F59

1

다음 명령을 실행하여 문제를 해결했습니다.

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys *somekey*


0

우분투 14.04 이미지에 대해 배치를 실행하는 두 개의 동일한 상자 중 하나에서 이것을보고 있습니다. 실제로 이전에는 효과가 app-infra-1있었지만 어느 시점에서 실패하기 시작했습니다. 그것이 app-infra-2새로 재생성 되었다는 사실은 그것이 app-infra-1탐지 및보고의 손상 또는 버그 임을 시사한다 apt-key adv.

키를 사용하여 삭제를 시도했지만 apt-key del동일한 오류가 계속 발생합니다.

changed: [app-infra-2] => {"changed": true, "item": "", "repo": "ppa:webupd8team/java", "state": "present"}
failed: [app-infra-1] => {"cmd": "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886", "failed": true, "item": "", "rc": 2}
stderr: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

stdout: Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.2zqQuFdBjg --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/puppetlabs-keyring.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 7B2C3B0889BF5709A105D03AC2518248EEA14886

msg: gpg: requesting key EEA14886 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

결국 VM이기 때문에 내 솔루션은로 다시 빌드하는 것이 었습니다 vagrant.


0

나를 위해 내 docker 파일에 ENV 문을 추가해야했습니다. 예 :

ENV  http_proxy "http://[yourproxy]:[port]/"
ENV  https_proxy "http://[yourproxy]:[port]/"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.