ppa nginx chính thức cho lỗi gpg KEYEXPIRED


34

Tôi đang gặp lỗi sau mỗi lần tôi thực hiện nâng cấp apt-get:

Lỗi GPG: http://nginx.org đáng tin cậy Phát hành: Các chữ ký sau không hợp lệ: KEYEXPIRED 1471427554

Tôi vừa cài đặt nginx ppa chính thức theo cách tiêu chuẩn, bằng cách thêm các mục sau vào nguồn của tôi.

deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx

Đây có phải là một lỗi từ cuối của họ mà cuối cùng họ sẽ sửa chữa, hoặc có điều gì tôi sẽ phải làm từ cuối của tôi không?


1
Bạn đã tải xuống khóa này từ NGINX , sau đó chạy sudo apt-key add nginx_signing.keyvà vẫn gặp lỗi này?
Thomas Ward

2
điều này xảy ra ... đôi khi. Nhưng cái này ("1471427554") không giống như khóa GPG hợp lệ. wget http://nginx.org/keys/nginx_signing.key -O - |sudo apt-key add -sẽ thực hiện cả hai bước được đề xuất bởi @ThomasWard trong một lệnh nhỏ.
Phillip -Zyan K Lee- Stockmann 18/8/2016

LANG=C sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1471427554trả về lỗi sau: Executing: /tmp/tmp.EU8uLKmT5b/gpg.1.sh --keyserver keys.gnupg.net --recv-keys 1471427554 gpg: "1471427554" not a key ID: skipping
Phillip -Zyan K Lee- Stockmann 18/8/2016

1
vâng, tập tin chính cũng có sẵn thông qua https.
Phillip -Zyan K Lee- Stockmann

1
@Phillip: Trên thực tế, 1471427554 là dấu thời gian của thời gian hết hạn cho khóa ký APT. Các phiên bản hiện đại của lệnh date sẽ phân tích nó thành định dạng dễ đọc cho bạn: date -u -d @1471427554cho Wed Aug 17 09:52:34 UTC 2016.
BertD

Câu trả lời:


48

Sau khi thêm kho lưu trữ của bên thứ ba vào một /etc/apt/sources.list.d/*tệp hoặc /etc/apt/sources.list, bạn cần đảm bảo khóa gpg tương ứng được chèn vào kho khóa apt.

Để cụ thể hơn cho trường hợp đặc biệt này của kho nginx.org: bạn cần thêm tệp khóa gpg nginx.org được sử dụng để ký kho lưu trữ.

Điều này có thể được thực hiện bằng cách tải xuống tệp https://nginx.org/keys/nginx_signing.key theo cách thủ công và phát hành sudo apt-key add nginx_signing.key(theo đề xuất của nginx.org và @ThomasWard) hoặc bạn có thể thực hiện việc này trong một dòng duy nhất:

wget https://nginx.org/keys/nginx_signing.key -O - | sudo apt-key add -

Ok, điều này đã làm việc, nhưng tôi phải đọc sai, hoặc thiếu một cái gì đó. Tại sao điều này đột nhiên bật lên bây giờ? Tôi không hiểu điều đó.
codenoob

1
@linsong mô tả lý do tại sao điều này xuất hiện ngay bây giờ: khóa gpg cũ đã hết hạn vào tháng 8, 17. Vì vậy, bạn cần tải xuống khóa mới.
Phillip -Zyan K Lee- Stockmann

11

Nguyên nhân sâu xa của vấn đề này là do khóa ký Nginx "cũ" đã hết hạn vào ngày 17 tháng 8 năm 2016:

$ sudo apt-key list

pub   2048R/7BD9BF62 2011-08-19 [expired: 2016-08-17]
uid                  nginx signing key <signing-key@nginx.com>

Để khắc phục sự cố này, hãy thêm khóa ký mới bằng cách sử dụng lệnh như được đề xuất bởi @ phillip-zyan-k-lee-stockmann và @ThomasWard:

wget https://nginx.org/keys/nginx_signing.key -O - | sudo apt-key add -

Khóa mới sẽ hết hạn vào năm 2024:

$ sudo apt-key list

pub   2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14]
uid                  nginx signing key <signing-key@nginx.com>

Tôi nghĩ rằng tôi thích câu trả lời này nói chung vì nó cố gắng giải thích những gì đã xảy ra tốt hơn. (Lời giải thích trên không phù hợp với trường hợp sử dụng của tôi mặc dù có phản hồi.)
codenoob
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.