프록시 뒤에 apt-key를 사용하여 GPG 키를 추가할 수 없습니다.

프록시 뒤에 apt-key를 사용하여 GPG 키를 추가할 수 없습니다.

apt-keyUbuntu 17.04로 전환한 이후 시스템을 통해 gpg 키를 추가하는 데 실패했습니다(그러나 직접적인 관련이 있는지는 의심스럽습니다). 예는 다음과 같습니다Spotify 저장소 키:

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
Executing: /tmp/apt-key-gpghome.wRE6z9GBF8/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
gpg: keyserver receive failed: No keyserver available

접두사를 제거해도 마찬가지입니다 hkp://.


맥락: 나는 사용한다탄소나노튜브현지 기업 에이전트와 거래하세요. 환경 변수 설정(에서 /etc/environment):

$ env | grep 3128
https_proxy=http://localhost:3128
http_proxy=http://localhost:3128
ftp_proxy=http://localhost:3128

/etc/apt/apt.conf구성됨( apt명령이 제대로 작동함):

$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://localhost:3128";
Acquire::https::Proxy "http://localhost:3128";
Acquire::ftp::Proxy "http://localhost:3128";

마지막으로 지정된 키 서버에 액세스할 수 있는 것으로 나타납니다.

$ curl keyserver.ubuntu.com:80
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>SKS OpenPGP Public Key Server</title>
  </head>
  <body>
  [...]

어떡해? 더 이상 디버깅하는 방법조차 모르겠습니다 ...


내가 시도했지만 아무런 결과도 얻지 못한 것들:

  • sudo-E(환경 보존) 옵션 으로 실행
  • apt-key adv옵션을 사용하여 실행 --keyserver-options http-proxy=http://localhost:3128/(원천)
  • $ gpg --list-keys어떤 이유로 실행 중입니다(원천)
  • 다른 키 서버 사용( --keyserver pgp.mit.edu)
  • hkp://( --keyserver keyserver.ubuntu.com:80) 부분을 제거하세요 .

이상한 점은 /var/log/syslog.dll을 실행할 때 "cntlm" 항목이 전혀 표시되지 않는다는 것입니다 apt-key.

답변1

일반적으로 ftp, http 및 https에 대한 프록시가 있습니다. hkp://는 URL로 표시되므로 순수 http 프록시를 통해 전달되어서는 안 됩니다. 이로 인해 통신이 실패하게 됩니다.

대신 이것을 사용하십시오:

sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://localhost:3128 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886

시스템 업데이트의 경우 apt-cacher-ng.

또 다른 방법은 브라우저를 사용하여 워크스테이션과 같은 공용 네트워크 인터페이스에서 원하는 키를 검색하는 것입니다.https://keyserver.ubuntu.com

웹사이트를 열면 양식이 나옵니다. 이 예에서는 검색 문자열 "Spotify"를 사용한 다음 검색을 선택하여 여러 키를 나열했습니다.

결과 페이지에 언급된 서명/지문을 검색하세요.

pub  4096R/D2C19886 2015-05-28            
     Fingerprint=BBEB DCB3 18AD 50EC 6865  0906 13B0 0F1F D2C1 9886 

uid Spotify Public Repository Signing Key <[email protected]>
sig  sig3  D2C19886 2015-05-29 __________ 2017-11-22 [selfsig]
sig  sig   94558F59 2015-06-02 __________ __________ Spotify Public Repository Signing Key <[email protected]>

우리는 이것이 우리의 관심을 끄는 항목이라는 것을 알았습니다.

따라서 D2C19886을 클릭하면 키가 있는 페이지가 나타납니다.https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x13B00F1FD2C19886.

Public Key Server -- Get "0x13b00f1fd2c19886 "

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: keyserver.ubuntu.com

mQINBFVm7dMBEADGcdfhx/pjGtiVhsyXH4r8TrFgsGyHEsOWaYeU2JL1tEi+YI1qjpExb2Te
TReDTiGEFFMWgPTS0y5HQGm+2P3XGv0pShvgg9A6FWZmZmT+tymA2zvNrdpmKdhScZ52StPL
Fz9wsmXHG4DIKVuzgzuV4YxJ1i2wFtoVp8zT9ORu1BxLZ0IBwTvLRbaQGZ8DwXVAHak9cK91
Ujj6gJ1MJPohZLHH2BjrOjEl/I36jFUjK0AadznNzo08lLAi94qjtheJtuJD3IEOAlCkaknz
6vbEFpszLGlLD7GENMzJk46ObuJuvW5R2PkOU2U8jS0GaUD9Ou/SIdJ6vIdvjSs/ettc2wwd
nbSdadvjovIfvEBRsEVMpRG+42B+DZpJbS9pCb8sxTJtnUy1YViZmG0++FhPGGPGzQYhC/Mz
07lsx5PkC7Kka2FCNmhauxw5deO43Ck181oQVdbt/VxmChzchUJ6N6/uOV5JKm7B9UnDNyqU
Yv6goeLvFnT9ag+FCxiroTrq+dINr6d+XT/cI9WtSagfmhcekwhyfcCgYsFemAOckRifjEGF
MksQlnWkGwWNoKe91KBxjgaJaazSbZRk0dFPSSmfKWaxuTwkR74pbaueyijnQJgHAjfCyzQe
9miN9DitON5l6T2gVAN3Jn1QQmV7tt5GB7amcHf5/b0oYmmRPQARAQABtD5TcG90aWZ5IFB1
YmxpYyBSZXBvc2l0b3J5IFNpZ25pbmcgS2V5IDxvcGVyYXRpb25zQHNwb3RpZnkuY29tPokB
HAQQAQIABgUCVW3SWAAKCRAILM7flFWPWUk5B/wOqqD9/2Do9PyPucfUs/rrP4+M8iJLpv8U
+bX/qHryTTWfpk3YuKL4+c8saHySK4HLGyxd3mdo1XMF351KrxLQvWMSSPbIRV9cSqZROOVn
2ya+3xpWk6t1omLzxtBBMOC4B5qAfWhog7ioAmzQNY5NUz5mqXVP5WbgR/G+GOszzuQUgeu1
Xxxzir3JqWQ0g8mp3EtX7dB76zxkkuTYbeVDPOvtJPn/38d3oSLUI1QJnL8pjREHeE8fO5mW
ncJmyZNhkYd+rfnPk+W0ZkTr59QBIEOGMTmATtNh+x1mo5e2dW91Oj4jEWipMUouLGqbo/gJ
uHFMt8RWBmy+zFYUEPYHiQI+BBMBAgAoAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUC
VWg3sAUJBK3QLQAKCRATsA8f0sGYhl6hEACJ1CrYjaflKKR2Znuh0g0gM89NAwO8AA4+SpkW
HagdGLo7OV/rGB3mlwD4mhaa8CbEnBT/za3jFnT19KsYQWiT21oOX/eo47ITbAspjDZTiXLi
nyAcOJn+q/EFkelROzbVaxZHi6SN5kCEd8KAew8h2jZf8wWqaYVyMPNSqotUhin6YjWsu57B
GixVThoMmxx3udsGAiYqt8buAANWbkUphrvtJuNCKkGym7psnS4Q5EnHPfvbYii9iAfBswX6
nZQlehva7aToN73elYL3opCArAxKAFx70bpGxb7T16KjKzkKS0a4iQ7xdbBGylb+AE/RhICa
+RM5tma2YnB3pZvFM/n0BNeYReCgvxkl1rqrB1KxmFHfGqjLkb2YAZ5RYnP3gEt+nbEWxL8F
O0Bhakn1RB3NqTC2oiQAUfh+66yUawUNkHRHlGAEzZAxvpfnf0hSJp734lyQZJs+zqXUAXa2
UmEZ6se62PgZRQIz5IbAVxSiGz4xIZs1yS36N2vZ34LFJa9o/HVk5OfpqZM0zjWwQIQN2b4O
BizL5r4h2Mi5BHUEyYMsDZn+txoJjPPYLolRlf31sqi5MJE+cbOAXSn8PC9k4i+hrbfqFzts
47+6xgCH3aXbhUkJh1CH/0/qEXfTPYTyayijm4rdvSBczzEORWGT5E38oV9h1eUqp4nVPg==
=/qip
-----END PGP PUBLIC KEY BLOCK-----

spotify.pgp예를 들어 대상 서버에서 파일 키를 가져오려는 경우 "-----BEGIN"으로 시작하고 "-----END"(포함)로 끝나는 줄 사이를 잘라낸 다음 파일에 붙여넣습니다 . (형식을 지정할 때 각 줄 앞에 공백 4개를 추가했으므로 여기서는 자르지 마세요.)

마지막으로 키를 서버로 가져옵니다.

$sudo apt-key add spotify.pgp
OK

답변2

다음은 apt-key 또는 gpg를 프록시하는 대신 컬을 통해 http를 사용하는 솔루션입니다.

curl -sSL \
'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886' \
| sudo apt-key add -

apt-key이 방법은 명령줄이나 http_proxy 또는 https_proxy 환경 변수 설정(최신 버전에서는 비활성화됨 ) 대신 사용해야 합니다 apt-key.

답변3

나는 이것을 이전에 추가했고 http://그것은 keyserver.ubuntu.com나에게 도움이 되었습니다:

# apt-key adv --keyserver http://keyserver.ubuntu.com 

답변4

다음을 통해 add-apt-repository에 대한 매개변수로 키 서버를 지정할 수 있습니다.

sudo add-apt-repository --keyserver hkps://keyserver.ubuntu.com:443 some_ppa

나가는 포트 443은 회사 방화벽에 의해 차단되지 않습니다.

관련 정보