為什麼我會收到此 APT 警告:Signature by key………使用弱摘要算法(SHA1)?
我正在為一些自定義 Raspberry Pi 程式碼託管一個私人 Debian 儲存庫。我最初在 Raspbian Jessie(版本 8)上建構了該軟體,生成了一個 GPG 密鑰,用於簽署儲存庫,並
sudo apt-key add ...
在所有設備上執行,以確保它們能夠驗證我的儲存庫。這工作得很好,直到最近我添加了一些執行 Raspbian Stretch(版本 9)的新設備。即使我向它們添加了完全相同的 GPG 密鑰,以下是我執行時看到的輸出sudo apt-get update
:W: GPG error: http://url.of.private.repo stable Release: The following signatures were invalid: 95F9B44CE35F40B759D59C2A77E4184C595493B1 W: The repository 'http://url.of.private.repo stable Release' is not signed. N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use. N: See apt-secure(8) manpage for repository creation and user configuration details.
但是,這只發生在較新的盒子上。在仍在執行 Jessie 的 Pis 上,我可以
sudo apt-get update
隨心所欲地執行,它不會給我任何身份驗證警告。為什麼執行 Stretch 的 Pis 認為 GPG 密鑰無效,即使它們都共享相同的密鑰?我可以在執行 Stretch 的盒子上生成一個新密鑰,但我希望避免向每個 Jessie 盒子添加新的 GPG 密鑰。(現在我只有少數幾個新盒子執行 Stretch,而大約 200 個盒子仍在執行 Jessie。)我可以做些什麼來讓 Stretch 盒子相信這個 GPG 密鑰實際上是有效的?
根據要求,以下是
sudo apt-get -o Debug::Acquire::gpgv=true update
兩個平台上的命令輸出:
根據評論:
SHA1
被假定為弱,因此 Debian 決定早在2016 年 3 月就切換到更強大的雜湊算法。因此,如果操作 APT 儲存庫:棄用
SHA1
並(至少)切換到SHA256
.請參閱這篇 Debian wiki 文章以獲取有關推理的摘要以及跟踪損壞/修復(上游)儲存庫的這篇文章。
這個關於ask ubuntu的答案為我修復了它:編輯
~/gnupg/gpg.conf
並添加:cert-digest-algo SHA256 digest-algo SHA256