Debian

在 risc64 上設置 debian 歸檔密鑰:新密鑰但不包含使用者 ID

  • May 17, 2022

我有一個執行 Debian 映像的Sipeed Lichee RV,但由於缺少密鑰,我無法安裝軟體。

我已按照包身份驗證說明進行操作,但收到此錯誤:

root@sipeed:/etc/apt# gpg --keyserver hkps://keys.openpgp.org --recv-keys 0xE852514F5DF312F6
gpg: key E852514F5DF312F6: new key but contains no user ID - skipped
gpg: Total number processed: 1
gpg:           w/o user IDs: 1

我的sources.list文件包含:

deb http://ftp.ports.debian.org/debian-ports/ sid main

命令apt update返回

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E852514F5DF312F6

如果無法導入 gpg 密鑰,可以debian-ports-archive-keyring手動安裝。

wget http://ftp.us.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2022.02.15_all.deb
sudo dpkg -i debian-ports-archive-keyring_2022.02.15_all.deb

或使用:

wget -O - https://www.ports.debian.org/archive_2022.key |sudo  apt-key add -

正如debian 埠網頁中提到的那樣。

包認證

如果要 apt 驗證下載的軟體包,可以 安裝debian-ports-archive-keyring軟體包或手動將 Debian ports 存檔密鑰導入 apt

$$ … $$

與其嘗試查看 GPG 密鑰是如何被錯誤處理的,並且還考慮到usingapt-key已被棄用並且可能很快就會消失,另一種方法還需要一個單獨的執行 Debian 系統(任何架構的,因為該軟體包沒有架構,並且至少是穩定的)釋放)可以使用。我寧願安裝為儲存庫提供身份驗證方法的包:debian-ports-archive-keyring而不必知道它是如何實現的或將來可能會改變。

為了引導信任源並避免雞與蛋的信任問題,可以要求其他 Debian 系統提供有效軟體包的資訊。因此,下面的命令應該在另一個正確驗證其儲存庫源的 Debian 系統上執行(不需要是 root,但應該是apt update最近執行的 root):

$ apt-get --print-uris --reinstall install debian-ports-archive-keyring
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
 debian-ports-archive-keyring
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 29.7 kB of archives.
After this operation, 52.2 kB of additional disk space will be used.
'http://deb.debian.org/debian/pool/main/d/debian-ports-archive-keyring/debian-ports-archive-keyring_2022.02.15%7edeb11u1_all.deb' debian-ports-archive-keyring_2022.02.15~deb11u1_all.deb 29692 MD5Sum:698ade2c82f6319d63a491231c4f0417

這提供了檢索包的位置,而不是嘗試下載和安裝它,並且沿著這個大小和校驗和驗證這是正確的包。它將通過驗證..._bullseye_InRelease(或其他版本而不是靶心)文件的 GPG 簽名來驗證此資訊,該簽名涵蓋文件的有效性..._main_binary-XXX_Packages(其中 XXX 是其他 Debian 系統的體系結構,並且對於包無關緊要沒有架構)提供有關目標包的資訊。這兩個文件都存在於/var/lib/apt/lists/.

這允許以任何方式在任何地方(通過稍微改變 URL)下載包debian-ports-archive-keyring_2022.02.15~deb11u1_all.deb,然後使用這種情況驗證它的大小和校驗和md5sum

一旦下載並驗證,這個包可以安裝在目標系統上dpkg -i ...(它不依賴於任何東西,這很方便地避免必須遞歸地為每個依賴項執行此方法,如果存在具有架構的包會更加困難),然後是系統像往常一樣升級。debian-ports-archive-keyring在此過程中可能會升級。

引用自:https://unix.stackexchange.com/questions/702921