Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penandatanganan metadata repositori di AL2023
Dimulai dengan rilis2023.11.20260406, repositori AL2023 menyertakan tanda tangan kriptografi untuk metadata repositori. Setiap file repositori disertai dengan repomd.xml file tanda tangan GPG terpisah (repomd.xml.asc) yang dapat Anda gunakan untuk memverifikasi keaslian dan integritas metadata repositori sebelum paket diunduh.
Penandatanganan ini merupakan tambahan dari penandatanganan paket RPM yang ada (gpgcheck), yang memverifikasi paket individual. Penandatanganan metadata repositori memverifikasi metadata yang menjelaskan isi repositori, seperti daftar paket yang tersedia dan checksumnya.
Penandatanganan paket melindungi setiap paket. Indeks metadata yang mencantumkan paket-paket tersebut dipercaya hanya berdasarkan TLS dan checksum. Tanpa tanda tangan pada indeks, cermin yang dikompromikan atau jalur transportasi dapat menyajikan metadata yang dimodifikasi yang menyembunyikan atau memblokir pembaruan keamanan. Penandatanganan metadata repositori menutup celah ini dan tidak bergantung pada cermin atau kepercayaan transportasi.
Cara kerja penandatanganan metadata repositori
Ketika repositori AL2023 diterbitkan, repomd.xml metadata repositori () ditandatangani menggunakan kunci KMS.AWS Tanda tangan terpisah (repomd.xml.asc) yang dihasilkan ditempatkan di samping metadata di repositori.
Saat Anda mengaktifkan repo_gpgcheck konfigurasi repositori Anda, DNF verifikasi repomd.xml.asc tanda tangan terhadap kunci publik GPG sebelum menggunakan metadata repositori. Jika verifikasi gagal, DNF tolak metadata dan tidak menjalankan operasi paket dari repositori itu.
Pertama kali DNF memverifikasi metadata repositori, ini meminta Anda untuk mengimpor kunci penandatanganan repositori itu ke keyring per-repositori. Prompt ini default ke. No Jika Anda menolaknya, DNF lewati repositori. Untuk informasi selengkapnyarepo_gpgcheck, lihat Referensi DNF Konfigurasi
Ini adalah kunci yang sama yang sudah digunakan untuk verifikasi paket, tetapi DNF menyimpannya dalam keyring terpisah untuk pemeriksaan metadata. Anda diminta untuk mengonfirmasinya meskipun kuncinya sudah ada di disk. Ini adalah DNF perilaku yang diharapkan.
Repositori AL2023 berikut menyertakan metadata yang ditandatangani:
Repositori inti ()
amazonlinuxRepositori Kernel Livepatch ()
kernel-livepatchRepositori NVIDIA ()
amazonlinux-nvidiaPaket Tambahan untuk repositori Amazon Linux ()
amazonlinux-spal
Perbedaan antara gpgcheck dan repo_gpgcheck
gpgcheck dan repo_gpgcheck| Pengaturan | Apa yang diverifikasi | Standar di AL2023 |
|---|---|---|
gpgcheck=1 |
Memverifikasi tanda tangan GPG dari masing-masing paket RPM sebelum instalasi. | Diaktifkan |
repo_gpgcheck=1 |
Memverifikasi tanda tangan GPG dari metadata repositori () repomd.xml sebelum menggunakan repositori. |
Dinonaktifkan secara default |
Kami menyarankan Anda mengaktifkan keduanya gpgcheck danrepo_gpgcheck, setelah Anda mengonfirmasi bahwa otomatisasi Anda sudah siap. Ini memverifikasi metadata repositori dan paket individual sebelum digunakan. Sebelum Anda mengaktifkanrepo_gpgcheck, lihatGunakan verifikasi metadata repositori dalam otomatisasi.
Mengaktifkan verifikasi metadata repositori
Anda dapat mengaktifkan verifikasi metadata repositori untuk masing-masing repositori dengan memperbarui file konfigurasi mereka.
penting
Verifikasi tanda tangan metadata repositori tidak diaktifkan secara default. Itu tetap dinonaktifkan sampai Anda mengubahnya. Sebelum Anda mengaktifkannya, konfirmasikan bahwa setiap DNF perintah tanpa pengawasan dalam otomatisasi Anda melewati -y opsi. Untuk informasi selengkapnya, lihat Gunakan verifikasi metadata repositori dalam otomatisasi.
Aktifkan untuk repositori tertentu
File konfigurasi repositori AL2023 diatur secara default. /etc/yum.repos.d/ repo_gpgcheck=0 Untuk mengaktifkan verifikasi metadata repositori, ubah nilai ini menjadi 1 dalam konfigurasi repositori. Misalnya, untuk mengaktifkannya untuk repositori inti:
[amazonlinux] name=Amazon Linux 2023 repository ... gpgcheck=1 repo_gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023
Nonaktifkan verifikasi metadata repositori
Untuk kembali ke perilaku sebelumnya, atur repo_gpgcheck=0 dalam file konfigurasi repositori. Penyegaran metadata berikutnya berhasil tanpa verifikasi.
[ec2-user ~]$sudo sed -i 's/^repo_gpgcheck=1/repo_gpgcheck=0/' /etc/yum.repos.d/amazonlinux.repo[ec2-user ~]$sudo dnf -y makecache
Memverifikasi bahwa penandatanganan metadata repositori berfungsi
Setelah mengaktifkanrepo_gpgcheck=1, Anda dapat memverifikasi bahwa verifikasi metadata berfungsi dengan membersihkan DNF cache dan menyegarkan metadata:
[ec2-user ~]$sudo dnf clean metadata[ec2-user ~]$sudo dnf makecache
Pertama kali DNF memverifikasi metadata untuk repositori, ini meminta Anda untuk mengimpor kunci penandatanganan repositori itu. Masukkan y untuk mengonfirmasi. Setelah kunci diimpor, DNF buat cache metadata tanpa kesalahan. Anda akan melihat output yang mirip dengan berikut ini:
Amazon Linux 2023 repository 1.7 MB/s | 1.8 kB 00:00
Importing GPG key 0xD832C631:
Userid : "Amazon Linux <amazon-linux@amazon.com>"
Fingerprint: B21C 50FA 44A9 9720 EAA7 2F7F E951 904A D832 C631
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-amazon-linux-2023
Is this ok [y/N]: y
Amazon Linux 2023 repository 18 MB/s | 55 MB 00:03
Metadata cache created.
Prompt impor default ke. No Jika Anda menolaknya, DNF lewati repositori dan laporan Ignoring repositories dalam output. Jika verifikasi gagal, DNF laporkan kesalahan tanda tangan GPG dan tidak membuat cache.
Untuk lari tanpa pengawasan, lihatGunakan verifikasi metadata repositori dalam otomatisasi.
Gunakan verifikasi metadata repositori dalam otomatisasi
catatan
Prompt impor kunci default ke. No Proses tanpa pengawasan DNF tidak dapat menjawab prompt, sehingga menolak impor dan melewatkan repositori. Karena AL2023 skip_if_unavailable=True disetel, perintah masih keluar dengan status. 0 Akibatnya, otomatisasi melaporkan keberhasilan sementara host tidak menerima paket atau pembaruan. Tanda ini ada Ignoring repositories di output.
Untuk mencegah hal ini, teruskan -y opsi ke setiap DNF perintah tanpa pengawasan yang menyegarkan metadata, termasuk pekerjaan integrasi berkelanjutan, build image dan container, manajemen konfigurasicloud-init, dan pekerjaan cron.
[ec2-user ~]$sudo dnf -y makecache[ec2-user ~]$sudo dnf -y check-update[ec2-user ~]$sudo dnf -y upgrade
Perintah yang menyegarkan metadata perlu. -y Perintah yang hanya membaca cache lokal atau database RPM lokal, atau yang menggunakan -C opsi, tidak menyegarkan metadata dan tidak meminta. Untuk daftar lengkapnya, lihat Perintah yang menyegarkan metadata repositori.
Simpan -y otomatisasi Anda secara permanen. Kuncinya diimpor sekali per URL repositori, bukan sekali per host. AL2023 membangun setiap URL repositori dari versi terkunci releasever () dan AWS Wilayah, sehingga peningkatan versi OS atau perubahan Wilayah diselesaikan ke URL baru dan meminta lagi. Kunci penandatanganan tidak berubah; hanya lokasi keyring yang melakukannya. Jangan melakukan pre-seed atau pre-bake kunci sebagai perbaikan satu kali, karena upgrade versi berikutnya atau Region menggunakan keyring baru dan meminta lagi.
Menjalankan dnf clean all menghapus metadata cache tetapi tidak menghapus kunci yang diimpor dalam versi yang sama. Itu tidak memicu kembali prompt.
Build gambar kontainer membutuhkan perhatian khusus. Setiap RUN dnf langkah dalam pembuatan gambar tidak dijaga, dan keyring adalah bagian dari sistem file gambar, sehingga mulai kosong di setiap gambar baru. Prompt muncul selama pembuatan terlepas dari apa yang telah diimpor oleh host yang sedang berjalan Anda. Lewati -y build gambar.
catatan
Jika Anda mengemudi DNF sebagai pustaka Python (import dnf), prompt tidak berlaku. Pustaka mengimpor kunci tanpa meminta, jadi metadata dimuat tanpa. -y
Perintah yang menyegarkan metadata repositori
Perintah apa pun yang mengunduh atau menyegarkan metadata repositori memicu impor kunci dan prompt. Perintah yang hanya membaca cache lokal atau database RPM lokal tidak. Opsi mengubah hasilnya: misalnya, -v membuat repolist fetch, --installed keep list dan info local, -C atau --cacheonly menghindari pengambilan, dan --refresh memaksanya. Jika ragu, lulus-y.
| Perintah | Menyegarkan metadata |
|---|---|
dnf makecache | Ya |
dnf check-update | Ya |
dnf upgrade, dnf update | Ya |
dnf upgrade-minimal | Ya |
dnf distro-sync | Ya |
dnf install | Ya |
dnf reinstall | Ya |
dnf downgrade | Ya |
dnf autoremove | Ya |
dnf swap | Ya |
dnf list(default atau--available) | Ya |
dnf info(default atau--available) | Ya |
dnf search | Ya |
dnf provides | Ya |
dnf repoquery | Ya |
dnf repoinfo | Ya |
dnf deplist | Ya |
dnf repository-packages | Ya |
dnf updateinfo | Ya |
dnf group(daftar, info, instal) | Ya |
dnf module(daftar, info) | Ya |
dnf shell(jika subperintahnya diambil) | Ya |
dnf builddep | Ya |
dnf changelog | Ya |
dnf debuginfo-install | Ya |
dnf download | Ya |
dnf repoclosure | Ya |
dnf repograph | Ya |
dnf reposync | Ya |
dnf debug-dump | Ya |
dnf repolist -v(bertele-tele) | Ya |
dnf repolist(polos atau--all) | Tidak |
dnf list --installed, dnf info --installed | Tidak |
dnf remove, dnf erase | Tidak |
dnf mark | Tidak |
dnf history | Tidak |
dnf check | Tidak |
dnf clean | Tidak |
dnf config-manager | Tidak |
dnf needs-restarting | Tidak |
dnf alias | Tidak |
dnf help | Tidak |
dnf repomanage | Tidak |
dnf repodiff | Tidak (kesalahan kecuali dua repositori diberi nama) |
dnf copr | Tidak |
dnf groups-manager | Tidak |
dnf playground | Tidak |
dnf debug-restore | Tidak (bertindak pada tempat pembuangan yang disimpan) |
Setiap perintah dengan -C atau --cacheonly | Tidak |
Repositori yang dilewati dengan cara ini dilaporkan seperti Ignoring repositories pada output, tetapi sebagian besar perintah ini masih keluar dengan status karena 0 AL2023 disetel. skip_if_unavailable=True Jangan mengandalkan kode keluar saja. Lulus -y sehingga impor kunci berhasil.
Mendeteksi repositori yang dilewati
Kode keluar saja tidak mengkonfirmasi bahwa verifikasi berhasil. Repositori yang dilewati keluar0, dan kunci penandatanganan tetap ada setelah proses apa pun mengimpornya, sehingga pemeriksaan selanjutnya dapat lolos sementara langkah sebelumnya masih gagal. Gunakan dua pemeriksaan ini sebagai gantinya:
-
Audit otomatisasi Anda. Konfirmasikan bahwa setiap perintah pengambilan metadata lewatDNF.
-yInilah yang membuat Anda bekerja pada URL repositori baru berikutnya. -
Periksa output untuk
Ignoring repositories. Perintah berikut gagal ketika repositori dilewati, yang dapat Anda gunakan untuk gagal dalam pipeline:
[ec2-user ~]$sudo dnf makecache 2>&1 | grep -q "Ignoring repositories" && { echo "repo skipped"; exit 1; }
Versi yang disematkan
Jika Anda menyematkan releasever (dengan --releasever/etc/dnf/vars/releasever,, ataudnf.conf) ke versi yang dirilis sebelumnya2023.11.20260406, versi tersebut tidak memiliki file tanda tangan, dan repo_gpgcheck=1 gagal menyegarkan repositori:
Error: Failed to download metadata for repo 'amazonlinux':
GPG verification is enabled, but GPG signature is not available...
Versi yang disematkan tidak menerima pembaruan di luar versi itu. Jika Anda menyematkan, menyematkan ke versi 2023.11.20260406 atau yang lebih baru, atau mengaturrepo_gpgcheck=0.
Kunci publik GPG untuk repositori AL2023
Kunci publik GPG yang digunakan untuk verifikasi metadata repositori diinstal oleh RPM konfigurasi repositori yang sesuai. /etc/pki/rpm-gpg/ Tabel berikut mencantumkan kunci publik yang digunakan oleh setiap repositori.
| Repositori | Kunci penandatanganan Package | Kunci penandatanganan repodata | Didistribusikan di |
|---|---|---|---|
Inti (amazonlinux) |
RPM-GPG-KEY-amazon-linux-2023 |
RPM-GPG-KEY-amazon-linux-2023 |
system-release |
Kernel Livepatch () kernel-livepatch |
RPM-GPG-KEY-amazon-linux-2023 |
RPM-GPG-KEY-amazon-linux-2023 |
system-release |
NVIDIA (amazonlinux-nvidia) |
RPM-GPG-KEY-NVIDIA-D42D0685 |
RPM-GPG-KEY-amazon-linux-2023-nvidia |
nvidia-release |
SPAL () amazonlinux-spal |
RPM-GPG-KEY-amazonlinux-spal |
RPM-GPG-KEY-amazonlinux-spal |
spal-release |
Tombol-tombol ini secara otomatis diinstal ketika Anda menginstal konfigurasi repositori yang sesuai RPM.