2006-12-21 16:10:14過路人而已

aptitude update 升級狀況

註:這篇文章是轉貼而來

前幾天就發現在aptitude update時會出現這樣的顯示:

Reading package lists... Done
W: There are no public key available for the following key IDs:
A70DAF536070D3A1

也就是安全apt的這個公鑰找不到了,雖然當時就解決了問題,
但真到今天看了DWN才知道原來是為即將發佈的Debian Etch準備的新公鑰。

這個公鑰是要解決Debian的軟體庫的安全問題。
Debian軟體的發佈依賴於分佈全球的眾多伺服器,
上面有打好deb包的軟體,怎麼知道下載的套裝軟體是不是真的呢?

是不是經由Debian developper們發出來的呢?
就要用到gpg簽名,他們用私鑰簽名,
用戶下載後用公鑰--公開發佈出來的這把--驗證,
如果對上了,就說明這個包是真的,沒有改動過。

這些操作是由apt自動進行。
最新的即將發佈的Etch是第一個採用這種安全手段的發行版,
當然Unstable的sid早就用上了。

這個公鑰存在這個位址,叫做ziyi,就是跟章子儀的名字起的(這品味)
--不知道現在這裏這個key是老的還是這個新的etch key。
不過沒必要去下這種key,GPG也是個網路,有專門的伺服器存放它,
只需要知道key id,就可以從網路上獲取。

所以解決上述問題的步驟是這樣的:

這是由於 FTP master 生成了新的密鑰,用於簽署 etch 的 release,
但是這把新密鑰還沒有被 debian-archive-keyring 這個 package 收錄的緣故。

根據 http://lists.debian.org/debian-devel/2006/11/msg00731.html
這個主題裏的討論,正確的手動添加 APT 密鑰的步驟是:

1. 下載新的密鑰 (需要網路連接):

# gpg --keyserver pgpkeys.mit.edu --recv-keys A70DAF536070D3A1(Keyserver參數也可以不加)

2. 確認新密鑰是由 FTP master 簽名過的,可以信任 (應該是需要已經安裝了
debian-keyring 這個 package):

# gpg --check-sigs A70DAF536070D3A1

3. 給 APT 添加這把新密鑰:

# gpg --export -a A70DAF536070D3A1 | apt-key add -
很多地方給的建議都缺了第二步,其實不妥。
(這一步可以驗證這個key的真實性,其實是通過其他一些人的Key來驗證,
這些人要麼是名人,要麼是你認識的人)

另外這也就是個警告而已,我沒有添加新密鑰也沒有什麼問題。
另外再等幾天debian-archive-keyring 也就應該更新,自動添加這把新密鑰了。
--以上是ming hua的作品

本來這些key應該是每年1月更換,不知道這個新key怎麼算,
以及明年1月會不會再發個新的給新包用,而這個只用於etch。

這些key可以用apt-key list列出來看,apt-key就是專門處理這種事的,
這些key存在/etc/apt/trusted.gpg裏面。
如果在source.list裏面加了新的軟體庫,
不同於Debian官方各鏡像的,就要加上那個庫的key來認證。