Cách làm việc xung quanh cổng hkp bị chặn đối với các khóa apt


35

Tôi đang sử dụng Ubuntu 9.10 và cần thêm một số kho apt. Thật không may, tôi nhận được tin nhắn như thế này khi chạy sudo apt-get update:

W: GPG error: http://ppa.launchpad.net karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A9BF3BB4E5E17B5
W: GPG error: http://ppa.launchpad.net karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1DABDBB4CEC06767

Vì vậy, tôi cần cài đặt các khóa cho các kho lưu trữ này. Dưới 9,10 bây giờ chúng ta có tùy chọn để làm điều này:

sudo add-apt-repository ppa:nvidia-vdpau/ppa

Xem bài viết trợ giúp Ubuntu này để biết chi tiết.

Điều này thật tuyệt, ngoại trừ việc tôi đang chạy cái này trên một máy trạm phía sau tường lửa, chặn các kết nối ra bên ngoài đến gần như tất cả các cổng ngoại trừ những cổng được yêu cầu bởi các thư ký chạy Windows và IE.

Cổng trong câu hỏi ở đây là dịch vụ hkp, cổng 11371.

Dường như có nhiều cách để tải xuống các khóa theo cách thủ công và cài đặt chúng trên khóa của apt. Thậm chí có thể có một cách để sử dụng add-apt-repository hoặc wget hoặc thứ gì đó để tải xuống một khóa từ một máy chủ thay thế làm cho nó có sẵn trên cổng 80.

Tuy nhiên, tôi chưa tìm thấy một bộ các bước ngắn gọn để làm như vậy. Những gì tôi đang tìm kiếm là:

  1. Cách tìm khóa công khai cho gói apt (đề xuất cho các tài nguyên có những điều này và / hoặc mẹo tìm kiếm. Tìm kiếm băm khóa không có vẻ hiệu quả cho đến nay.)
  2. Làm cách nào để lấy khóa (có thể tự động thực hiện bằng gpg hoặc add-apt-repository?)
  3. Cách thêm khóa vào khóa của apt

Cảm ơn trước.

Câu trả lời:


38

Điều này đã được sửa trong phiên bản Natty sắp tới của Ubuntu: https://launchpad.net/ubfox/natty/+source/software-properIES/0.78.1

Những người sử dụng phiên bản cũ hơn cần chỉnh sửa ppa.py:

sudo gedit /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py

Nó nói ở đâu:

keyserver.ubuntu.com

thay đổi thành:

hkp://keyserver.ubuntu.com:80

Lưu, thoát, sau đó bạn hy vọng tốt để đi.


1
Tuyệt vời - đã giải quyết vấn đề của tôi!
Fedearne

14
Vào ngày 10.10, thay vì chỉnh sửa tệp nguồn này, tôi chỉ có thể gọisudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys KEY_HASH
l0b0

hkp://keyserver.ubuntu.com:80hoạt động vào ngày 10.04.
bd808

1
+1 để sử dụng--keyserver hkp://keyserver.ubuntu.com:80
rogeriolino

19
sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://proxy:port --recv-keys KEYID

13

Đây là một cách giải quyết tôi đã sử dụng:

Tôi đã đăng nhập vào một máy chủ linux trong thế giới tự do vượt ra ngoài tường lửa của công ty chúng tôi và đã làm điều này:

gpg --keyserver keyserver.ubuntu.com --recv 1DABDBB4CEC06767 && gpg --export --armor 1DABDBB4CEC06767

Sau đó, trên máy trạm của tôi, tôi đã chạy nó và dán đầu ra từ lệnh trên (khóa chung) vào stdin, theo sau là control-D:

sudo apt-key add -

Sau đó tôi đã có thể chạy sudo apt-get updatemà không gặp vấn đề gì.

Tôi vẫn nghĩ rằng phải có một cách tốt hơn, lý tưởng nhất là thứ tôi có thể viết kịch bản.


"Tôi đã đăng nhập vào một máy chủ linux trong thế giới tự do" Không có khả năng người ta có thể làm điều này trong trường hợp ngay cả hkp cũng bị chặn.
gertvdijk

^ có thể giả sử bạn đang sống trong một chế độ đàn áp chứ không phải bộ phận CNTT của Byzantine. Tôi có thể SSH bất cứ nơi nào tôi muốn khi tôi sử dụng VPN, nhưng không có gói DNS (và dường như không có HKP.) Đây chỉ là những gì tôi cần.
Kingdon

8

Tôi có một cách giải quyết khác ở đây có thể hữu ích nếu bạn không thể tìm thấy một máy chủ linux khác ngoài mạng của mình dưới dạng proxy. Chỉ cần gửi email đến "pgp-public-keys@pgp.mit.edu" như chủ đề "nhận 0x1DABDBB4CEC06767". Nhưng có lẽ bạn vẫn không thể viết một tập lệnh đơn giản để tự động hóa việc này.


5

Bạn có thể truy cập trang web của máy chủ khóa , ví dụ: http://wwwkeys.eu.pgp.net/ Tìm kiếm chữ ký khóa (bạn cần thêm 0x vào chữ ký hex), tức là 0x1DABDBB4CEC06767.

Nhấp vào liên kết, bạn hy vọng sẽ nhận được và dán văn bản vào một tệp trên máy, tức là

cat > <filename>

[PASTE]

[Ctrl-C]

Sau đó

apt-key add <filename>

Điều này làm việc tốt cho tôi; nó xuất hiện proxy công việc của tôi chặn rất nhiều cổng "không chuẩn".


Đây là cách duy nhất làm việc cho tôi. Proxy của tôi chặn rất nhiều giao thức hkp và ngay cả khi tôi sử dụng cổng 80, gpg vẫn không liên lạc với máy chủ. Bằng cách này, tôi cuối cùng đã có thể thêm chìa khóa.
Alexander Amelkin

4

Tôi tìm thấy một cách gọn gàng để thực hiện nó trong một lệnh duy nhất thông qua cổng 80 luôn mở cho lưu lượng truy cập www.

http://gurrier.wordpress.com/2010/10/02/downlolading-repo-keys-from-behind-a-cor merg-firewall /


2
apt-key adv --keyserver hkp: //keyserver.ubfox.com: 80 --recv-key ...
vorburger

1
Xin chào và chào mừng đến với superuser. Khi trả lời câu hỏi, xin vui lòng trả lời câu hỏi với giải pháp trong chính câu trả lời. Không có gì đảm bảo rằng trang web bạn giới thiệu sẽ giữ cho trang web tăng lên và nếu nó đi xuống, thì câu trả lời của bạn sẽ vô giá trị.
Mogget

2

Một giải pháp đơn giản là:

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

Https bảo mật (gửi đi 443) sẽ không bị chặn bởi tường lửa.


1

Tôi chỉ đơn giản sử dụng ssh để chuyển tiếp cổng đến một máy chủ bên ngoài sau đó chạy apt-add-repolệnh.

ssh -fqTnN -D 11371 <user@host>

-1

Tôi đã có cùng một vấn đề với gpg. Cách giải quyết với việc thêm cổng vào tên máy chủ hoạt động bằng cách chỉnh sửa ~/.gnupg/gpg.conftệp của tôi . Tuy nhiên, tôi vẫn sẽ yêu cầu sysadmin của chúng tôi mở cổng ra bên ngoài 11371, vì vậy tôi không phải lo lắng về điều này một lần nữa.


Các cổng? Làm thế nào để chỉ định cổng (11371) trong cấu hình hoạt động xung quanh tường lửa?
0xC0000022L
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.