apt-key 及 /etc/apt/trusted.gpg 被棄用

apt update 提示訊息

Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

源由

不同來源的金鑰沒有被區別,導致可以從來源 A 接收由 B 金鑰簽名的套件。

替換指令

金鑰

# 原本
wget -qO - https://domain/filename.asc | apt-key add -

# 換成這個 (自己改檔名)
wget -qO - https://domain/filename.asc | gpg --dearmor > /usr/share/keyrings/filename.gpg

# 或是這個 (方便補 sudo)
wget -qO - https://domain/filename.asc | gpg --dearmor | tee /usr/share/keyrings/filename.gpg > /dev/null

存放於 /usr/share/keyrings 下面的金鑰不會自動被 apt 信任,後面說明如何設定。

存放於 /etc/apt/trusted.gpg.d 下面的金鑰會自動被 apt 信任。

軟體來源

# 原本
deb https://domain/...

# 換成 (路徑換成上一章節的儲存路徑)
deb [signed-by=/usr/share/keyrings/filename.gpg] https://domain/...

棄用 /etc/apt/trusted.gpg

# 列出現存金鑰,等等只需要動 /etc/apt/trusted.gpg 那部份的金鑰
$ apt-key list
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2020-01-01 [SC]
      AAAA BBBB CCCC DDDD EEEE 0000 1111 2222 3333 4444
uid           [  未知  ] Name <username@domain>
...

# 逐一匯出金鑰
# 注意:指定金鑰是取其 id 的結尾 8 個字,而不是常見的取開頭!
apt-key export 33334444 | gpg --dearmour -o /usr/share/keyrings/filename.gpg
...

# 更改軟體來源設定 (見前面章節說明)
vim /etc/apt/source.list.d/filename.list

# 刪除 /etc/apt/trusted.gpg
rm /etc/apt/trusted.gpg

Related posts

Bash 操作

快速鍵

Ctrl-x Ctrl-e:將輸入中的指令移到編輯器,退出編輯器時執行

MacOS Terminal.app 設定

鍵盤設定

按鍵傳送文字相關應用Control-上一頁\033[5;5~vim 切換分頁Control-下一頁\033[6;5~vim 切換分頁

Leave a Comment

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *