apt で NO_PUBKEY / GPG Error が出る場合の解決方法

apt コマンドで公開鍵に関するエラー, NO_PUBKEY / GPG Error が出る場合は,以下の手順で復旧できます

例えば apt-get update で下記のエラーが出る場合は

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

以下のコマンドを実行します

$ gpg --keyserver pgpkeys.mit.edu --recv-key 06AED62430CB581C
$ gpg -a --export 06AED62430CB581C | sudo apt-key add -

これは

  • 1つ目のコマンドでGPGの公開鍵をダウンロードして,
  • 2つ目のコマンドでそれをaptのデータベースに登録

しています

あとは再度

$ sudo apt update

を実行すれば復旧できます

データベースの実体は /etc/apt/trusted.gpg です

$ sudo apt-key list 

で登録済み公開鍵の一覧が確認できます.

一覧には /etc/apt/trusted.gpg だけでなく /etc/apt/trusted.gpg.d/以下のファイルの公開鍵も含まれています


なお昔はGPG鍵を更新する方法として

$ sudo apt-key update

という方法も用意されていましたが,この方法は今では廃止されています(2018年5月確認)