從 apt 0.6 之後,就會開始於下載時辨識檔案庫的簽署,若少了驗證公鑰或簽署不正確,那些前端工具(apt-get, aptitude 與 synaptic)就會狠狠的警告你一番,甚至不願讓你安裝。這樣的措施是好的,可以避免像是檔案伺服器遭到入侵,deb 檔案被置換成惡意程式,或是各伺服器間同步失敗的問題。
但最近你升級或安裝套件的時候,apt 會警告你缺了某些驗證金鑰,那是由於 2005 年那把鑰匙將在月底到期,所以已經改用新的金鑰簽署了。你需要做的是安裝 debian-archive-keyring 或者下達以下指令
wget http://ftp-master.debian.org/ziyi_key_2006.asc -O - | sudo apt-key add -
如果你想讓你自己的套件庫提供類似的認證。那麼只需要用 GPG 簽署 Release 檔案,然後把你的公開金鑰交給其他人就是了。詳見 apt-secure (8)。
當然這樣只是保護那些 md5 checksum 與 repository 的完整性,如果想確保單一的 deb 完整性, 你恐怕需要 debsigs 與 debsig-verify(Signing in dpkg)。很遺憾的,John Goerzen 所設計的 debsigs 需要認證的基礎架構,你需要各上游所提供的設定檔(policy files),太麻煩沒有人採用。所以你若裝了 debsig-verify,恐怕是無法裝上任何東西。:-/
另外一個機制是 dpkg-sig,一樣是利用 GPG 來對安裝檔作簽署,差別是這系統是將 deb 拆開,簽好,再組回 deb。相較之下至少還有少數幾個套件使用這樣的機制。:-|