Bagaimana cara memintas / mengabaikan pemeriksaan tanda tangan gpg apt?

47

Semua server kunci yang saya kunjungi kehabisan waktu. Saya perlu menginstal paket tanpa memeriksa tanda tangan kunci publik. Apakah ada cara untuk mem-bypass semua tanda tangan cek / abaikan semua kesalahan tanda tangan atau bodoh untuk berpikir tanda tangan berlalu?

Saya sadar betul bahwa melakukan ini berbahaya

ashleysmithgpu
sumber
1
Biasanya Anda akan menginstal kunci secara bersamaan pada saat Anda menambahkan repositori, jadi mengapa Anda perlu mengakses server-kunci?
JanC

Jawaban:

68

Lewati --allow-unauthenticatedopsi menjadi apt-getseperti pada:

sudo apt-get --allow-unauthenticated upgrade

Dari halaman manual apt-get:

--allow-unauthenticated
Abaikan jika paket tidak dapat dikonfirmasi dan jangan diminta. Ini berguna untuk alat seperti pbuilder. Item Konfigurasi: APT :: Get :: AllowUnauthenticated.

Anda dapat menjadikan pengaturan ini permanen dengan menggunakan file konfigurasi Anda sendiri di /etc/apt/apt.conf.d/dir. Nama file bisa 99myowndan mungkin berisi baris ini:

APT::Get::AllowUnauthenticated "true";

Dengan cara ini, Anda tidak perlu menggunakan opsi setiap kali Anda ingin menginstal perangkat lunak. Catatan: Saya tidak merekomendasikan pengaturan opsi ini secara default, ini melewati pemeriksaan tanda tangan yang dapat membuat musuh mengkompromikan komputer Anda.

Lekensteyn
sumber
4
Untuk info: Ini berfungsi dengan apt-gettetapi tidak dengan aptperintah biasa .
Tor Klingberg
2
Ubuntu 16.0 LTS. Ini tidak berfungsi / tidak memiliki efek apa pun
wvxvw
7

Jika Anda mencoba untuk mendapatkan paket dari repositori tempat mereka mengemas kunci dan memasukkannya ke dalam repositori dan tidak ada tempat lain, itu bisa sangat menjengkelkan untuk mengunduh dan menginstal paket kunci / keyring menggunakan dpkg, dan sangat sulit untuk melakukannya dengan cara yang mudah skrip dan berulang.

Skrip di bawah ini tidak disarankan jika Anda dapat menginstal kunci dari server kunci atau mengunduhnya dari sumber tepercaya melalui https, tetapi jika Anda tidak memiliki cara lain, Anda dapat menggunakan ini.

echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | sudo tee /etc/apt/sources.list.d/your-repo-name.list

sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update

## if the 'apt update' above fails it is likely due to previously
## having the GPG key and repository on the system, you can clean
## out the old lists with `sudo rm /var/lib/apt/lists/your.repo.domain*`

apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname

## If you ever run `sudo apt-key del your-repos-keyID`
## you may have to `sudo apt remove --purge repo-keyring-pkgname`
## Update should run without the GPG warnings now that the key is installed

apt-get update
apt-get install somepkg-from-repo

Saya awalnya menyatukan ini karena i3 di repo sur5r mereka melakukan ini, tapi kemudian saya menemukan kunci mereka ada di daftar keyserver.ubuntu.com, jadi saya bisa sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6dan menghindari semua kerepotan paket tambahan.

dragon788
sumber
Datang ke sini karena masalah i3 - sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6menyelesaikannya! Terima kasih banyak!
Benedikt Köppel
6

Mungkin Anda dapat mencoba membuat file /etc/apt/apt.conf (ini akan dibaca jika Anda membuatnya) dan masukkan kode ini:

APT{Ignore {"gpg-pubkey"; }};
lebenlechzer
sumber
5
Itu tidak bekerja untuk saya. Tetapi berfungsi ketika saya menambahkanAPT { Get { AllowUnauthenticated "1"; }; };
php-coder
ubuntu 16.0 LTS: tidak memengaruhi apa pun yang dilakukan apt-get.
wvxvw
1

Buat /etc/apt/apt.conf.d/99allow_unauthdengan konten ini:

APT { Get { AllowUnauthenticated "1"; }; };

Terima kasih atas komentar php-coder .

Totor
sumber
0

Saya mengalami masalah yang sama dengan server debian lama. Saya tidak dapat membuat acara

apt-get update

yang memberi saya kesalahan berikut:

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

Akhirnya solusinya adalah menambahkan ini:

Acquire::Check-Valid-Until false;

to /etc/apt/apt.conf (buat jika tidak ada). Setelah ini, kesalahan menjadi peringatan sederhana.

Saya kira itu mungkin bekerja di ubuntu juga.

Harap dicatat bahwa itu sama sekali tidak aman.

Gnusam
sumber
Jika tidak aman, maka saya sarankan Anda tidak mempostingnya sama sekali.
Yufenyuy Veyeh Dider
Cara aman untuk melakukan ini adalah dengan meningkatkan distro. Dalam beberapa kasus pelanggan yang rumit, Anda tidak memiliki cara untuk memutakhirkan. Dan karena seluruh pertanyaan dimulai dengan penafian ini: 'Saya sangat sadar itu berbahaya untuk melakukan ini' saya pikir kontribusi saya sesuai. Jika tidak, saya bisa menghapusnya.
Gnusam