GNU/Linux >> Belajar Linux >  >> Debian

apt-key sudah kedaluwarsa. Bagaimana cara menambahkan kunci penandatanganan repositori OpenPGP tanpa mereka di Debian, Ubuntu, Linux Mint, Pop! _OS, dll.

Artikel ini menjelaskan cara aman menambahkan kunci OpenPGP pihak ketiga dan repositori APT pada distribusi Debian, Ubuntu, dan Linux berdasarkan mereka seperti Linux Mint, Pop! _OS, OS Dasar, dll. untuk menggantikan yang lama apt-key .

Jika Anda mencoba menambahkan kunci repositori APT dengan apt-key pada distribusi Debian, Ubuntu, dan Linux berdasarkan itu, Anda akan melihat pesan berikut:Peringatan:apt-key sudah kedaluwarsa. Sebagai gantinya, kelola file rantai kunci di Trusted.gpg.d (lihat apt-key (8)) “.

apt-key halaman manual menyebutkan bahwa “Penggunaan apt-key sudah usang, dengan pengecualian menggunakan apt-key del dalam skrip pengelola untuk menghapus kunci yang ada dari keyring master “. Terlebih lagi,”apt-key akan tetap tersedia di Debian 11 dan Ubuntu 22.04 .

Alasan perubahan ini adalah ketika menambahkan kunci OpenPGP yang digunakan untuk menandatangani repositori APT, /etc/apt/trusted.gpg atau /etc/apt/trusted.gpg.d , kuncinya digunakan oleh APT pada semua repositori lain yang dikonfigurasi pada sistem yang tidak a. telah dipercaya tanpa syarat signed-by (lihat di bawah), bahkan repositori resmi Debian/Ubuntu. Akibatnya, setiap repositori APT tidak resmi yang telah ditambahkan kunci tanda tangannya akan /etc/apt/trusted.gpg atau /etc/apt/trusted.gpg.d dapat mengganti paket apa pun di sistem. Jadi perubahan ini dibuat untuk alasan keamanan (keamanan Anda).

Perlu juga dicatat bahwa selama apt-key Pesan pengaturan mengatakan “Sebaliknya, kelola file gantungan kunci di Trusted.gpg.d “, Wiki Debian mengatakan sesuatu yang lain. Itu karena menambahkan kunci OpenPGP ke /etc/apt/trusted.gpg dan /etc/apt/trusted.gpg.d seperti yang disebutkan di atas, sama tidak amannya.

Anda dapat terus menggunakan apt-key untuk saat ini karena masih berfungsi. Namun, ada baiknya untuk memulai transisi menggunakan signed-by Opsi seperti yang dijelaskan di bawah ini, terutama jika Anda mengelola repositori pihak ketiga.

Jadi apa cara yang benar dan aman untuk mendapatkan repositori pihak ketiga (tidak resmi) dan kunci tanda tangan OpenPGP mereka pada distribusi Debian, Ubuntu dan Linux berdasarkan mereka seperti Linux Mint, Pop! _OS, OS Dasar dll dari kunci apt usang?

1. Unduh kunci repositori APT

Menurut Wiki Debian, misalnya, kunci harus diunduh melalui HTTPS ke lokasi yang hanya dapat ditulis oleh root /usr/share/keyrings . Nama kunci harus berisi nama pendek yang menjelaskan repositori diikuti dengan archive-keyring . Misalnya ketika repositori disebut myrepository , file kunci harus diberi nama myrepository-archive-keyring.gpg .

File kunci OpenPGP mungkin atau mungkin tidak berlapis ASCII. Cara memeriksa apakah file kunci adalah lapis baja ascii , unduh file kunci dan jalankan perintah ini (Perhatikan bahwa ekstensi kunci dapat berupa .gpg, .asc, .key, dan mungkin lainnya ):

file <repo-key>.gpg

Jika output dari perintah ini mirip dengan yang berikut, kuncinya adalah lapis baja ASCII:

repo-key.gpg: PGP public key block Public-Key (old)

Namun, inilah cara Anda dapat mengunduh kunci penandatanganan repositori dengan benar dan aman dan menambahkannya ke sistem Anda:

  • Untuk kunci OpenPGP lapis baja ASCII

Untuk mengunduh dengan wget dan menambahkan kunci OpenPGP seperti itu ke sistem Anda, gunakan:

wget -O- <https://example.com/key/repo-key.gpg> | gpg --dearmor | sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg

Apa arti / arti dari semua yang ada di perintah ini:

  • wget mengunduh kunci dari https://example.com/key/repo-key.gpg dan memberikan kunci ke stdout (-O- ). Ganti url di sini dengan url kunci yang ingin Anda unduh dan tambahkan ke sistem Anda
  • gpg --dearmor :gpg Command adalah alat enkripsi dan penandatanganan OpenPGP; ini adalah --dearmor Opsi membongkar input dari armor OpenPGP-ASCII
  • sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg :sebagai pengguna super (sudo ), baca input standar, dalam hal ini output gpg --dearmor , dan tulis ini ke /usr/share/keyrings/<myrepository>-archive-keyring.gpg Mengajukan. Ganti <myrepository> itu nama dengan nama deskriptif untuk kunci repositori yang Anda tambahkan

Misalnya, untuk menambahkan repositori APT ke aplikasi Signal, gunakan:

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/signal-archive-keyring.gpg

Atau untuk menggunakan perintah yang diberikan sebagai contoh di wiki Debian (Anda harus menjalankannya sebagai root, misalnya setelah menjalankannya sudo -i; menggunakannya curl Alih-alih wget untuk mengunduh kuncinya):

curl <https://example.com/key/repo-key.gpg> | gpg --dearmor > /usr/share/keyrings/<myrepository>-archive-keyring.gpg

Contoh penggunaan perintah ini untuk menambahkan repositori Signal APT:

curl https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > /usr/share/keyrings/signal-archive-keyring.gpg

  • Untuk kunci OpenPGP lapis baja non-ascii

Unduh kunci OpenPGP dengan wget dan tambahkan ke sistem Anda dengan:

wget -O- <https://example.com/key/repo-key.gpg> | sudo tee /usr/share/keyrings/<myrepository-archive-keyring.gpg>

Atau untuk menggunakan perintah yang diberikan sebagai contoh pada wiki Debian (Anda harus menjalankannya sebagai root, misalnya setelah menjalankannya sudo -i ):

wget -O /usr/share/keyrings/<myrepository-archive-keyring.gpg> <https://example.com/key/repo-key.gpg>

Saya tidak menambahkan contoh di sini karena saya tidak dapat menemukan repositori pihak ketiga yang menggunakan kunci OpenPGP yang tidak dilindungi ASCII.

  • Cara mengimpor kunci OpenPGP langsung dari server kunci ke file di /usr/share/keyrings :

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/<myrepository>-archive-keyring.gpg --keyserver <hkp://keyserver.ubuntu.com:80> --recv-keys <fingerprint>

Alih-alih hkp://keyserver.ubuntu.com:80 , Anda dapat menggunakan server kunci yang berbeda jika perlu.

Contoh di mana kita mengimpor kunci OpenPGP dari Linux Uprising Shutter PPA ke /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg (Anda bisa mendapatkan sidik jari dengan mengklik tautan hijau “Detail teknis tentang PPA ini” di halaman PPA – terletak di bawah “Tambahkan PPA ini ke sistem Anda”):

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 1CC3D16E460A94EE17FE581CEA8CACC073C3DB2A

Anda Mungkin Juga Menyukai Ini:Cara Mencegah Pembaruan Paket Di Ubuntu, Debian, atau Linux Mint [APT]


2. Tambahkan entri source.list untuk repositori

Entri repositori pihak ketiga harus ditambahkan ke daftar /etc/apt/sources.list.d Direktori dan tidak langsung di /etc/apt/sources.list Berkas.

Sebelumnya ada file sources.list dari /etc/apt/sources.list.d Direktori akan terlihat seperti ini:

deb https://repository.example.com/debian/ stable main

Namun, agar dapat menggunakan kunci yang ditambahkan pada langkah 1, entri sources.list sekarang harus terlihat seperti ini (/etc/apt/sources.list.d/<myrepository.list> ):

deb [signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>

Penting untuk dicatat di sini bahwa jika Anda juga menggunakan arch=amd64 Opsi bersama dengan signed-by , Anda perlu memisahkan dua opsi dengan spasi sebagai berikut:

deb [arch=amd64 signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>

Misalnya, untuk menambahkan repositori sinyal ke sistem Debian / Ubuntu Anda, buat file (sebagai root; misalnya, untuk membuka editor teks baris perintah Nano dengan file ini:sudo nano /etc/apt/sources.list.d/signal.list ) bernama signal.list di /etc/apt/sources.list.d dengan konten berikut (asalkan Anda telah mengunduh kunci seperti yang dijelaskan di atas, sebagai /usr/share/keyrings/signal-archive-keyring.gpg ):

deb [arch=amd64 signed-by=/usr/share/keyrings/signal-archive-keyring.gpg] https://updates.signal.org/desktop/apt xenial main

Ingatlah untuk menjalankan sudo apt update setelah menambahkan kunci tanda tangan dan repositori baru untuk memperbarui sumber perangkat lunak.

Anda juga dapat menambahkan repositori dalam format file Deb822, tetapi agar tidak memperumit masalah lebih lanjut, saya tidak akan menjelaskannya di sini. Anda dapat membaca ini di wiki Debian.

Anda Mungkin Juga Menyukai Ini:Cara Menemukan Paket yang Menyebarkan File (Diinstal Atau Tidak) Di Ubuntu, Debian, atau Linux Mint

Cara menghapus kunci OpenPGP yang ada yang telah ditambahkan ke keyring APT tepercaya (/etc/apt/trusted.gpg atau /etc/apt/trusted.gpg.d)

Saat menambahkan kunci OpenGPG seperti dijelaskan di atas, Anda harus menghapus kunci yang sama dari /etc/apt/trusted.gpg atau /etc/apt/trusted.gpg.d jika Anda menambahkannya di sana sebelumnya. Tanpa ini, tidak ada manfaat keamanan tambahan.

Hapus kunci OpenPGP yang ada dari /etc/apt/trusted.gpg.d direktori seharusnya cukup mudah. Itu karena nama file kunci harus cukup deskriptif. Misalnya, nama file kunci gpg repositori Tor dari direktori ini ada di sistem saya deb.torproject.org-keyring.gpg

Untuk menyingkirkan kunci yang sudah ada sebelumnya yang telah ditambahkan /etc/apt/trusted.gpg.d , Anda hanya perlu menghapus file kunci. Anda harus melakukan ini sebagai root, jadi buka pengelola file pilihan Anda sebagai root dengan admin:// (Misalnya, untuk membuka lokasi sebagai root di Nautilus, tekan Ctrl + L Jadi Anda dapat mengetik dan mengetik di bilah alamat admin:///etc/apt/trusted.gpg.d ) atau hapus dari baris perintah dengan:

sudo rm /etc/apt/trusted.gpg.d/<myrepository-keyring.gpg>

Petunjuk berikut juga berfungsi untuk menghapus kunci dari /etc/apt/trusted.gpg.d Direktori.

Adapun Penghapusan kunci APT-GPG yang disimpan di /etc/apt/trusted.gpg , hal-hal yang sedikit lebih rumit. Gunakan perintah berikut untuk membuat daftar semua kunci APT OpenPGP yang diimpor ke kedua /etc/apt/trusted.gpg dan /etc/apt/trusted.gpg.d :

apt-key list

Kunci disimpan di /etc/apt/trusted.gpg harus dicantumkan di atas, diikuti dengan kunci dari /etc/apt/trusted.gpg.d Direktori. Anda perlu memeriksa kunci uid untuk mengetahui kunci mana yang harus dihapus. Biasanya UID harus menunjukkan perusahaan atau pengguna yang menandatangani kunci diikuti dengan alamat email mereka.

Kunci /etc/apt/trusted.gpg terdaftar dengan apt-key Daftar sebagai berikut (contoh):

pub   rsa4096 2016-04-22 [SC]

      B9F8 D658 297A F3EF C18D  5CDF A2F6 83C5 2980 AECF

uid           [ unknown] Oracle Corporation (VirtualBox archive signing key) <[email protected]>

sub   rsa4096 2016-04-22 [E]

ID kunci adalah 8 karakter terakhir dari sidik jari kunci GPG (dalam contoh ini adalah 2980AECF ).

Untuk menghapus kunci (dari /etc/apt/trusted.gpg atau /etc/apt/trusted.gpg.d ), sekarang Anda dapat menggunakan:

sudo apt-key del <KEY-ID>

Misalnya, untuk menghapus kunci dari contoh di atas, gunakan:

sudo apt-key del 2980AECF

Anda Mungkin Menyukai Ini:Cara Mendaftar Semua Paket dalam Repositori di Ubuntu, Debian, atau Linux Mint [APT]

Referensi:

  • https://wiki.debian.org/DebianRepository/UseThirdParty
  • https://askubuntu.com/a/1307181/1149075
  • https://zebnemeth.wordpress.com/2021/01/15/install-signal-desktop-using-gpg/
  • https://github.com/docker/docker.github.io/issues/1625

Terima kasih kepada u / ZebNemeth untuk Saran itu!


Debian
  1. Bagaimana cara memperbarui kunci GPG untuk repositori APT MySQL di Debian/Ubuntu?

  2. Debian – Tidak Dapat Menambahkan Kunci Gpg Dengan Apt-key Di Balik Proxy?

  3. Cara Menambahkan Repositori PPA Ubuntu ke Debian 7 Wheezy

  1. Cara Menginstal Pip Di Ubuntu 18.04, Debian 9 &Linux Mint 19

  2. Cara menginstal Oracle Java 14 (JDK 14) di Ubuntu, Debian atau Linux Mint dari repositori APT PPA

  3. Cara Menginstal Wine Staging, Development atau Stable di Ubuntu, Linux Mint atau Debian 10 (Hindari Masalah Ketergantungan)

  1. Cara Menginstal VLC 2.0.6 di Ubuntu 12.10, Linux Mint 14

  2. Cara Mengkompilasi dan Menginstal wxWidgets di Ubuntu/Debian/Linux Mint

  3. Bagaimana cara menginstal Oracle Java 16 di Debian, Ubuntu, Pop! _OS atau Linux Mint menggunakan repositori APT PPA