2010-06-27

【Scripts】input GPG key for Debian/Ubuntu

凍仁每次安裝 Debian 以及 Ubuntu 時,多少都會使用到第三方(third-party)的套件來源,而一般的都會多簽署個 GPG 金鑰(key)來驗證,但要是沒手動匯入 key,則每次更新時皆會有「NO_PUBKEY? Add GPG key for apt-get update」的錯誤訊息。指令不難只是很煩,寫個 scripts 就來處理就省事些。

1. 程式主體。
jonny@lucid:~$ vi gpg-input.sh [Enter]
 1 #!/bin/bash
 2 # FileName: gpg-input.sh
 3 
 4 for KEY in $@; do
 5     PUBKEY=$(echo $KEY | sed -e 's/^........//')
 6 
 7     # 若已裝 apt-key 只需一行指令,但這只適合 Debian/Ubuntu 使用。
 8     #apt-key adv --recv-keys --keyserver keyring.debian.org $KEY
 9 
10     # get key.
11     echo "gpg --keyserver keyserver.ubuntu.com --recv-keys $PUBKEY" | bash
12 
13     # input key.
14     echo "gpg --export --armor $PUBKEY | sudo apt-key add -" | bash
15 done
註:keyring.debian.org, keyserver.ubuntu.com 請自行依版本更換。

2. 增加執行權限。
jonny@lucid:~$ chmod a+x gpg-input.sh [Enter]

3. 使用 gpg-input.sh 匯入 GPG key。
jonny@lucid:~$ ./gpg-input.sh 5044912E \ 0C5A2783 0624A220 98AB5139 [Enter]
# 最多可一次匯入 9 組。
# 感謝 Solomon 分享,現在可一次匯入 N 組 key 了 :P