Paksa pembaruan dari repositori yang tidak ditandatangani

63

Saya menggunakan repo yang tidak ditandatangani di Ubuntu 16.04 dari multimedia Debian:

deb http://www.deb-multimedia.org jessie main

Untuk menginstal deb-multimedia-keyring, saya sedang menjalankan:

apt-get update && apt-get install deb-multimedia-keyring -y

Ini memberikan kesalahan:

W: GPG error: http://www.deb-multimedia.org jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5C808C2B65558117
E: The repository 'http://www.deb-multimedia.org jessie InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Shan
sumber

Jawaban:

40

Anda dapat melewati beberapa perlindungan penting dengan menggunakan opsi berikut:

--allow-unauthenticated

Dari halaman manual untuk apt-get:

--allow-unauthenticated
    Ignore if packages can't be authenticated and don't prompt about
    it. This can be useful while working with local repositories, but
    is a huge security risk if data authenticity isn't ensured in
    another way by the user itself. The usage of the Trusted option for
    sources.list(5) entries should usually be preferred over this
    global override. Configuration Item:
    APT::Get::AllowUnauthenticated.

Tetapi berhati-hatilah dalam menggunakan opsi ini secara lebih luas, perlindungan diterapkan untuk melindungi komputer Anda tidak membatasi kebebasan Anda ...

andrew.46
sumber
1
Saya menggunakan Raspbian stretchdan membalas dengan opsi E: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.saya ingin meng-upgrade dari python 3.5. t 3.6.
Timo
2
mengatakan kepada saya bahwa "opsi ini tidak dapat diartikan bersama dengan opsi lain" saat mengeksekusisudo apt-get update --allow-unauthenticated
Xerus
27
CATATAN: Ini sepertinya tidak lagi berfungsi di Ubuntu 18.04 pada Juli 2018.
Jay Taylor
@ JayTaylor: Saya baru saja membuka Mesin Virtual baru untuk 18,04 dan perintah berfungsi dengan baik di sini. Pastebin di sini: pastebin.com/ygLTnP1C
andrew.46
2
Menarik; mungkin ada sesuatu yang berbeda pada mesin yang saya coba dari balik kesalahan yang saya amati. Bagaimanapun, menambahkan [trusted=yes]bidang ke sources.list berhasil. Terima kasih atas ketekunan Anda @ andrew.46 :)
Jay Taylor
62

Anda dapat mengatur opsi di sources.list(terletak di /etc/apt/sources.list):

deb [trusted=yes] http://www.deb-multimedia.org jessie main

Opsi tepercaya adalah yang mematikan pemeriksaan GPG. Lihat man 5 sources.listdetailnya.

Anda dapat mengedit file di dalam terminal dengan vim (atau apa pun yang Anda inginkan) atau editor non-terminal seperti gedit.

Prathu Baronia
sumber
Bagaimana cara mengakses sources.listdari terminal?
fuzzi
1
Itu terletak di /etc/apt/sources.list. Anda dapat mengeditnya di dalam terminal dengan vim (atau apa pun yang Anda inginkan) atau editor non-terminal seperti gedit.
Prathu Baronia
8

Solusi generik lainnya adalah

sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5C808C2B65558117

Catatan: Saya tidak menguji solusi dengan repositori ini tetapi saya melakukannya dengan repositori Skype dan itu berfungsi dengan baik.

Solusi lain yang khusus untuk kasing Anda adalah dengan memasang kunci

wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2012.05.05_all.deb -O deb-multimedia-keyring.deb
sudo dpkg -i multimedia-keyring_all.deb

Seperti yang dijelaskan dalam perjalanan penuh melalui Sini

fady mohamed osman
sumber
3

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 (seperti yang disarankan dalam jawaban lain menggunakan apt-key adv) atau jika Anda dapat mengunduhnya dari sumber tepercaya melalui https dan menginstal menggunakan apt-key (misalnya wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -), tetapi jika Anda tidak t memiliki APA PUN dengan 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
Jawaban ini tampaknya tidak lengkap ketika dihadapkan dengan Ubuntu 18.04 Di sana ia mencoba untuk mengganggu saya dengan mengatakan hal-hal buruk seperti ... Release is not valid yet (invalid for another 44min 35s). Updates for this repository will not be applied. Bahkan setelah rm-ing / var / lib / apt / daftar / * hal-hal ...
Jürgen Weigert
Itu hanyalah masalah replikasi cermin dan seharusnya tidak mempengaruhi otentikasi atau penandatanganan paket di repositori. Karena 1804 baru saja keluar dari beta, banyak mirror yang berusaha mengejar dan layanan mirroring dapat mengarahkan Anda ke server yang belum sepenuhnya sinkron.
dragon788
2

Anda bisa mendapatkan PUBLIC_KEY dari keyserver dan menambahkannya ke apt-key. Dengan asumsi keyserver adalah pgpkeys.mit.edu, Anda harus mengetikkan:

gpg --keyserver pgpkeys.mit.edu --recv-key KEY_IN_ERROR
gpg -a --export KEY_IN_ERROR | sudo apt-key add -

Ganti KEY_IN_ERROR kunci dengan yang ada di pesan kesalahan Anda, yaitu 5C808C2B65558117.

Juga, jika Anda benar-benar tertarik untuk menambahkan repositori yang tidak ditandatangani, Anda dapat menambahkan tanda pada entri repositori yang diinginkan di sources.list seperti ini:

deb [allow-insecure=yes] http://www.deb-multimedia.org jessie main

Ini sangat berguna jika Anda ingin menyempurnakan pengaturan keamanan Anda untuk setiap entri.

leonidas
sumber