當前位置: 首頁>>技術教程>>正文


apt – 從未簽名的存儲庫強製更新

, ,

問題描述

我在Ubuntu 16.04中使用來自Debian多媒體的未簽名存儲庫:

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

要安裝deb-multimedia-keyring,我正在運行:

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

這給出了一個錯誤:

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.

最佳答案

您可以使用以下選項繞過一些重要的防護措施:

--allow-unauthenticated

從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.

但是要更廣泛地使用此選項時要謹慎一點,安全措施已經到位,可以保護您的計算機而不限製您的自由…

次佳答案

您可以在sources.list(位於/etc/apt/sources.list)中設置選項:

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

可信選項是關閉GPG檢查的選項。有關詳細信息,請參見man 5 sources.list

您可以使用vim(或您喜歡的任何一種)或任何非終端編輯器(如gedit)在終端中編輯文件。

第三種答案

另一個通用的解決方案是

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

注意:我沒有使用此存儲庫測試該解決方案,但是我使用Skype存儲庫進行了測試,並且效果很好。

針對您的情況的另一種解決方案是安裝密鑰

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

如完整介紹Here中所述

第四種答案

如果您試圖從存儲庫中獲取軟件包,在存儲庫中密鑰被打包並包含在存儲庫中,而沒有其他地方,那麽使用dpkg下載和安裝密鑰/密鑰包可能會很煩人,而且這樣做非常困難。以易於編寫和重複的方式。

如果可以從密鑰服務器安裝密鑰(如在另一個答案中使用apt-key adv的建議),或者可以通過https從受信任的源下載密鑰並使用apt-key(例如wget https://trusted.key.site/my-trusted-key.gpg | sudo apt-key add -)安裝,則不建議使用以下腳本,但是如果不這樣做,則不建議使用以下腳本。沒有其他方法,您可以使用此方法。

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

我最初把它們放在一起是因為i3在他們的sur5r存儲庫中是這樣做的,但是後來我發現他們的密鑰在keyserver.ubuntu.com列表中,因此我可以使用sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6來避免所有額外的軟件包麻煩。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/11390.html,未經允許,請勿轉載。