resmi nginx trusty ppa memberikan kesalahan gpg KEYEXPIRED

34

Saya mendapatkan kesalahan berikut setiap kali saya melakukan upgrade apt-get:

Kesalahan GPG: http://nginx.org trusty Rilis: Tanda tangan berikut tidak valid: KEYEXPIRED 1471427554

Saya baru saja menginstal nginx ppa resmi dengan cara standar, dengan menambahkan yang berikut ini ke sources.list saya

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

Apakah ini kesalahan dari pihak mereka yang pada akhirnya akan mereka perbaiki semoga, atau ada sesuatu yang harus saya lakukan dari pihak saya?

Mohamed Hafez
sumber
1
Apakah Anda mengunduh kunci ini dari NGINX , kemudian jalankan sudo apt-key add nginx_signing.keydan masih mendapatkan kesalahan ini?
Thomas Ward
2
ini terjadi ... kadang-kadang. Tapi ini ("1471427554") tidak terlihat seperti kunci GPG yang valid. wget http://nginx.org/keys/nginx_signing.key -O - |sudo apt-key add -akan melakukan kedua langkah yang disarankan oleh @ThomasWard dalam satu perintah kecil.
Phillip -Zyan K Lee- Stockmann
LANG=C sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 1471427554mengembalikan kesalahan berikut: 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
1
ya, file kuncinya tersedia melalui https juga.
Phillip -Zyan K Lee- Stockmann
1
@Phillip: Sebenarnya, 1471427554 adalah cap waktu waktu kedaluwarsa untuk kunci penandatanganan APT. Versi modern dari perintah tanggal akan menguraikannya dalam format yang dapat dibaca untuk Anda: date -u -d @1471427554berikan Wed Aug 17 09:52:34 UTC 2016.
BertD

Jawaban:

48

Setelah menambahkan repositori pihak ketiga ke /etc/apt/sources.list.d/*file atau /etc/apt/sources.list, Anda perlu memastikan kunci gpg yang sesuai dimasukkan ke apt keystore.

Untuk lebih spesifik untuk kasus khusus repositori nginx.org ini: Anda perlu menambahkan file kunci gpg nginx.org yang digunakan untuk menandatangani repositori.

Ini dapat dilakukan dengan mengunduh file https://nginx.org/keys/nginx_signing.key secara manual dan mengeluarkan sudo apt-key add nginx_signing.key(seperti yang disarankan oleh nginx.org dan @ThomasWard) atau Anda dapat melakukan ini dalam satu baris:

wget https://nginx.org/keys/nginx_signing.key -O - | sudo apt-key add -
Phillip -Zyan K Lee- Stockmann
sumber
Oke, ini berhasil, tetapi saya pasti salah membaca, atau melewatkan sesuatu. Mengapa ini tiba-tiba muncul sekarang? Saya tidak mengerti.
codenoob
1
@linsong menjelaskan mengapa ini muncul sekarang: kunci gpg lama telah berakhir pada 17 Agustus. Jadi, Anda perlu mengunduh kunci baru.
Phillip -Zyan K Lee- Stockmann
11

Akar penyebab masalah ini adalah karena kunci penandatanganan Nginx "lama" berakhir pada 17 Agustus 2016:

$ sudo apt-key list

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

Untuk memperbaiki masalah ini, tambahkan kunci penandatanganan baru menggunakan perintah seperti yang disarankan oleh @ phillip-zyan-k-lee-stockmann dan @ThomasWard:

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

Kunci baru sekarang berakhir pada 2024:

$ sudo apt-key list

pub   2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14]
uid                  nginx signing key <[email protected]>
hwdsl2
sumber
Saya pikir saya menyukai jawaban ini secara keseluruhan karena mencoba menjelaskan apa yang terjadi dengan lebih baik. (Penjelasan di atas tidak cocok dengan use case saya meskipun ada tanggapan.)
codenoob