Không thể thêm khóa gpg bằng khóa apt phía sau proxy


34

Việc thêm khóa gpg thông qua apt-keyhệ thống thất bại kể từ khi tôi chuyển sang Ubuntu 17.04 (tôi nghi ngờ rằng nó có liên quan trực tiếp). Ví dụ với khóa repo của 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

Điều tương tự nếu tôi loại bỏ hkp://tiền tố.


Bối cảnh: Tôi sử dụng CNTLM để đối phó với proxy công ty địa phương. Các biến Env được đặt (in /etc/environment):

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

/etc/apt/apt.confđược cấu hình ( aptcác lệnh đang hoạt động tốt):

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

Cuối cùng, máy chủ khóa được chỉ định dường như có thể truy cập:

$ 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>
  [...]

Tôi có thể làm gì ? Tôi thậm chí không chắc chắn về cách gỡ lỗi thêm ...


Những điều tôi đã cố gắng làm, mà không có kết quả:

  • chạy sudovới -Etùy chọn (bảo vệ env)
  • chạy apt-key advvới --keyserver-options http-proxy=http://localhost:3128/tùy chọn ( nguồn )
  • chạy $ gpg --list-keysvì một số lý do ( nguồn )
  • sử dụng máy chủ khóa khác ( --keyserver pgp.mit.edu)
  • xóa hkp://phần ( --keyserver keyserver.ubuntu.com:80)

Điều kỳ lạ là tôi không bao giờ thấy bất kỳ mục "cntlm" /var/log/syslognào khi chạy apt-key.


Điều gì xảy ra khi bạn cố gắng truy cập http://keyserver.ubuntu.com/trong trình duyệt của bạn?
dirkt

Tôi đã có trang web (giống như trang được hiển thị ở curlđầu ra ở trên)
Anto

Câu trả lời:


50

Bạn thường có proxy cho ftp, http và https; Tôi đang thấy ở đó hkp: // dưới dạng URL; vì vậy nó không nên được chuyển hướng qua một proxy http thuần, do đó không thể liên lạc được.

Sử dụng cái này thay thế:

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

Đối với các bản cập nhật hệ thống, tôi sẽ khuyên bạn nên sử dụng proxy APT apt-cacher-ng.

Một cách khác để làm điều đó là tìm kiếm trong giao diện web công cộng, ví dụ như với trình duyệt trên trạm làm việc của bạn để tìm khóa bạn muốn tại https://keyserver.ubfox.com

Mở trang web, và bạn đã có một hình thức. Trong trường hợp này, tôi đã sử dụng "Chuỗi tìm kiếm" "Spotify"; sau đó chọn "Tìm kiếm"; nó sẽ liệt kê một số khóa.

Tìm kiếm chữ ký / dấu vân tay mà bạn đã đề cập trong trang kết quả:

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>

Chúng tôi thấy đây là mục mà chúng tôi quan tâm.

Vì vậy, chúng tôi nhấp vào D2C19886 và được trình bày với một trang có khóa tại https://keyserver.ubfox.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-----

Bạn cắt giữa dòng bắt đầu bằng "----- BEGIN" và dòng kết thúc bằng "----- END", bao gồm các dòng đó và dán vào một tệp, nói spotify.pgptrên máy chủ dự định bạn muốn nhập Chìa khóa. (không cắt nó từ đây, vì tôi đã thêm 4 khoảng trắng trước mỗi dòng trong khi định dạng)

Cuối cùng để nhập khóa vào máy chủ bạn làm:

$sudo apt-key add spotify.pgp
OK

@Anto đã làm việc đó?
Rui F Ribeiro

1
Xin chào Rui, thực sự phương pháp "thủ công" này hoạt động và đó là cách tôi "tạm thời" giải quyết nó trong lúc này. Rõ ràng giải pháp tạm thời này sẽ không tồn tại tạm thời :( Nhưng dù sao cũng cảm ơn rất nhiều.
Anto

4

Đây là một giải pháp sử dụng http thông qua curl thay vì cố gắng ủy quyền apt-key hoặc gpg:

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

Phương pháp này nên được sử dụng thay cho apt-keycài đặt biến môi trường dòng lệnh hoặc http_proxy hoặc https_proxy (bị vô hiệu hóa trong các phiên bản mới nhất của apt-key).


-1

bạn có thể chỉ định máy chủ khóa làm tham số cho kho lưu trữ bổ sung bằng cách:

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

Cổng đi 443 sẽ không bị chặn bởi tường lửa của công ty.


Tại sao? Nó bị chặn trên tất cả các mạng của tôi theo mặc định.
cprn

Câu trả lời này sẽ không hoạt động, thách thức của câu hỏi là truy cập được tường lửa tập trung.
Rui F Ribeiro
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.