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


34

apt-keyUbuntu 17.04로 전환 한 후 시스템을 통해 gpg 키를 추가 하면 실패합니다 (직접적으로 관련이 있는지 의심됩니다). Spotify의 repo 키를 사용한 예 :

$ 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://접두사를 제거해도 마찬가지입니다.


컨텍스트 : CNTLM 을 사용 하여 로컬 회사 프록시에 대처합니다. 환경 변수는 (단위 :)로 설정됩니다 /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(ENV를 보존) 옵션
  • 실행 apt-key adv--keyserver-options http-proxy=http://localhost:3128/옵션 ( 소스 )
  • $ gpg --list-keys어떤 이유로 실행 ( source )
  • 다른 키 서버를 사용하십시오 ( --keyserver pgp.mit.edu)
  • hkp://부품을 제거하십시오 ( --keyserver keyserver.ubuntu.com:80)

가장 좋은 점은 /var/log/syslog실행할 때 "cntlm"항목을 볼 수 없다는 것입니다 apt-key.


http://keyserver.ubuntu.com/브라우저에서 액세스하려고하면 어떻게됩니까 ?
dirkt

웹 페이지를 얻었습니다 ( curl위의 출력에 표시된 것과 동일 )
Anto

답변:


50

일반적으로 ftp, http 및 https에 대한 프록시가 있습니다. 나는 URL로 hkp : //를보고있다; 따라서 순수한 http 프록시를 통해 전달되어서는 안되므로 통신에 실패합니다.

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

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

시스템 업데이트에 대해서는 APT 프록시를 사용하는 것이 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 <operations@spotify.com>
sig  sig3  D2C19886 2015-05-29 __________ 2017-11-22 [selfsig]
sig  sig   94558F59 2015-06-02 __________ __________ Spotify Public Repository Signing Key <operations@spotify.com>

우리는 이것이 우리에게 관심있는 항목이라는 것을 알았습니다.

따라서 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-----

당신은 "BEGIN -----"로 시작하는 라인과 그 라인을 포함한 "----- END"로 끝나는 라인 사이에 절단, 말하기, 파일에 붙여 넣기 spotify.pgp하면 수입이 원하는 의도 된 서버에 키. (포맷하는 동안 각 줄 앞에 4 개의 공백을 추가 했으므로 여기에서 잘라 내지 마십시오)

마지막으로 키를 서버로 가져 오려면 다음을 수행하십시오.

$sudo apt-key add spotify.pgp
OK

@Anto가 효과가 있었습니까?
Rui F Ribeiro

1
안녕하세요 루이, 실제로이 "수동"방법이 작동하고 그 동안 내가 "일시적으로"해결하는 방법입니다. 분명히이 임시 솔루션은 일시적으로 유지되지 않을 것입니다 :( 그러나 어쨌든 많은 감사합니다.
Anto

4

다음은 apt-key 또는 gpg를 프록시하는 대신 curl을 통해 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.


-1

다음과 같이 키 서버를 매개 변수로 지정하여 aapt-repository를 추가 할 수 있습니다.

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

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


왜? 기본적으로 모든 네트워크에서 차단됩니다.
cprn

이 답변은 효과가 없습니다. 질문의 과제는 액세스가 중앙에서 방화벽된다는 것입니다.
Rui F Ribeiro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.