sudo apt-key adv --keyerver Keyserver.ubfox.com --recv Lệnh 7F0CEB10 trả về lỗi


30

Tôi đang cố gắng cài đặt Mongodb trên Ubuntu 12 nhưng khi tôi chạy lệnh này:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Điều này đã trả về lỗi bên dưới:

Không tìm thấy máy chủ
keyerver.ubfox.com gpgkeys: Lỗi tìm nạp HTTP 7: không thể kết nối: không có tệp hoặc thư mục như vậy
gpg: không tìm thấy dữ liệu openPGP hợp lệ
gpg: Tổng số quá trình: 0

Tôi đã tắt Tường lửa trên Iptables, nhưng nó không hoạt động. Có ý kiến ​​gì không?


Hệ thống của bạn có thể giải quyết keyerver.ubfox.com dưới dạng địa chỉ IP không? Tức là, đầu ra của dig keyserver.ubuntu.comcái gì?
Xyon

Câu trả lời:


35

Điều này thực sự có thể không phải là một vấn đề với việc tìm kiếm máy chủ khóa, đó là những gì lỗi cho thấy. Lệnh apt-key gọi gpg, lần lượt cố gắng truy cập máy chủ khóa. Rõ ràng có một lỗi trong gpg, theo đó nếu máy chủ khóa không có khóa bạn đang yêu cầu, thì gpg giải thích sai rằng "không tìm thấy máy chủ".

Cũng có thể là một máy chủ khóa không phản hồi sẽ làm điều tương tự và tôi đã thấy các môi trường nơi các trình khóa được chặn (quy tắc tường lửa của công ty), vì vậy đó có thể là nguyên nhân gốc của bạn nếu có tường lửa ngược dòng mà bạn không có quyền truy cập đến.

Chỉ để tham khảo, chìa khóa ở đó và máy chủ khóa hiện đang trả lời cho tôi:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.rh1myoBdSE --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <richard@10gen.com>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

Có thể cổng đó là sự cố (đó là lần cuối cùng khi tôi gặp sự cố tường lửa của công ty), vì vậy hãy thử thực hiện điều này trên cổng HTTP tiêu chuẩn (80) thay vào đó, hãy xem liệu điều đó có sắp xếp được không:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

4
"làm điều này trên cổng HTTP tiêu chuẩn (80) thay vào đó" thật là khó khăn! tks
Bill.Zhuang

1
Cảnh báo: không có SSL, bạn có khả năng bị tấn công MitM , phục vụ cho bạn một khóa có dấu vân tay có cùng tám ký tự ( ví dụ khóa tấn công ). Một khóa như vậy thậm chí có thể không được chia sẻ công khai, vì vậy bạn sẽ không bao giờ biết bạn đã bị xóa. Để ngăn chặn cuộc tấn công như vậy từ các khóa được chia sẻ công khai, máy chủ khóa của Debian có chính sách chỉ rõ các khóa trong các chuỗi khóa của Debian, máy chủ này sẽ được trả về bởi máy chủ này
Adam Katz

21

Tôi đã đối mặt với vấn đề tương tự như máy của tôi đứng sau một proxy công ty. Thêm gpg --keyserver-option http-proxycác mẹo thực hiện. Giống như:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10

1
Cảm ơn! Thật tốt là tôi đã không ngừng đọc ở đầu ...
Moraru Lilian

20

Nếu bạn đang sử dụng proxy, ví dụ như proxy của công ty thì có lẽ cách duy nhất là nhập thủ công, điều này khá dễ dàng. Chạy:

sudo apt-get update

và lấy id của pub_key. Sau đó, hãy truy cập http://keyserver.ubfox.com/ và tìm kiếm khóa dưới dạng thập lục phân, ví dụ nếu khóa là 7936A783B, sau đó tìm kiếm 0x7936A783B. Nhấp vào liên kết con và sao chép nội dung khóa và lưu nó vào tệp txt. Đi đến thiết bị đầu cuối và điều hướng đến tập tin và chạy:

sudo apt-key add key.txt

Nếu nó hoạt động, bạn sẽ nhận được một OKphản hồi đơn giản . Khi tất cả các khóa được thêm vào, sau đó bạn có thể chạy:

sudo apt-get update

Và bạn có nó rồi đấy!


3
Đây là gọn gàng; Bạn cũng có thể sử dụng URL mà bạn có được nguyên văn apt-keynhư sau:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
sxc731

2
@ sxc731 - apt-keyTrang người đàn ông nói: Lưu ý rằng không có kiểm tra nào được thực hiện, do đó rất dễ làm suy yếu cơ sở hạ tầng apt-safe (8) nếu được sử dụng mà không cần quan tâm. Điều này có nghĩa là bạn thực sự không muốn làm điều đó mà không cần SSL. Thay đổi điều đó thành --fetch-keys https://…và bạn nên an toàn hợp lý.
Adam Katz

@AdamKatz điểm rất tốt, cảm ơn. Thật không may, tôi không thể chỉnh sửa nhận xét của mình để áp dụng đề xuất của bạn nhưng dù sao cũng được nâng cấp ...
sxc731

Các --fetch-keystùy chọn không cho tôi với lỗi: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol https' không được hỗ trợ gpg: không xử lý cho chương trình keyserverhttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin

Cảm ơn, chính xác những gì tôi đang tìm kiếm.
Miguel Ortiz

1

Cách tiếp cận thứ hai được đề cập trong liên kết này làm việc cho tôi. Tải xuống thủ công và thêm nó. Liên kết cung cấp quy trình từng bước để khắc phục lỗi xảy ra do thiếu khóa.

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.