Linux
GPG 正確簽名的儲存庫未按預期工作
我們將一些我們自己的軟體包作為 debs 託管在我們自己的儲存庫中。出於原型設計的目的,我們一直在“未經身份驗證”執行。現在我們正在嘗試更正確地做事情並完成整個 GPG 事情。我試過的,只是為了測試執行如下:
1)用
gpg-gen
~$ gpg --list-keys /home/me/.gnupg/pubring.gpg -------------------------------- pub 4096R/BBBBB39F 2017-03-09 uid Someone Somebody <someone@somewhere.com> sub 4096R/129E9336 2017-03-09
(順便說一句,那裡有 SUB 的東西嗎?)
aptly publish
…這提示我輸入我所說的密鑰的密碼,所以它必須在那個時候用密鑰做一些事情。3)使用導出密鑰
gpg —export —armor > somefile.pubkey
將一些 file.pubkey 複製到測試機器上
執行
sudo apt-key add somefile.pubkey
sudo apt-key list /etc/apt/trusted.gpg -------------------- pub rsa4096 2017-03-09 [SC] E51B E216 4658 FB8B 6E42 8A09 F9BC EF4C BBBB B39F uid [ unknown] Someone Somebody <someone@somewhere.com> sub rsa4096 2017-03-09 [E] … … …
所以,它似乎已經進入了那裡。sub的東西現在顯示不一樣了?
6)最後,
sudo apt-get update
:~$ sudo apt-get update Hit:1 http://ftp.us.debian.org/debian stretch InRelease Hit:2 http://ftp.us.debian.org/debian stretch-updates InRelease Hit:3 http://security.debian.org stretch/updates InRelease Get:4 http://our.aptly.repo stretch InRelease [2317 B] Ign:4 http://our.aptly.repo stretch InRelease Fetched 2317 B in 9s (256 B/s) Reading package lists... Done W: GPG error: http://our.aptly.repo stretch InRelease: The following signatures were invalid: E51BE2164658FB8B6E428A09F9BCEF4CBBBBB39F W: The repository 'http://our.aptly.repo stretch InRelease' 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.
我不明白這裡發生了什麼。冒犯似乎是沒有簽名的東西?我錯過了哪一步?
最新的 Debian 延伸安裝不再接受 SHA1 簽名。但是,在 v0.9.7 之前 Aptly 使用 SHA1(相關 PR,請注意它也被反向移植到 v0.9.6.1)。我懷疑您使用的 Aptly 版本比那個版本舊。如果是這樣,請考慮將他們的 repo添加到您的 sources.list。