ククログ

株式会社クリアコード > ククログ > 非推奨となったapt-keyの代わりにsigned-byとgnupgを使う方法

非推奨となったapt-keyの代わりにsigned-byとgnupgを使う方法

apt-key(8)はapt 2.1.8より非推奨となりました。

Ubuntu 20.10 (Groovy)やそろそろリリースの時期が近づいてきたDebian 11(Bullseye)からはapt-keyを利用すると警告されます。

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

今回はapt-keyを使うのをやめて、代替手段へと(パッケージ提供側が)移行する方法について紹介します。

apt-keyはどのような挙動をするのか

ソフトウェアを簡単にインストールできるように、開発元が独自にAPTリポジトリを提供してくれている場合があります。 その場合、パッケージの署名に使っている公開鍵をあらかじめインポートするように指示していることがあります。

apt-keyはその鍵をインポートするのにこれまでよく使われていました。

ただし、apt-keyは(対象となるキーリングを指定しない場合には)鍵を/etc/apt/trusted.gpgへと取り込みます。 /etc/apt/trusted.gpgはAPTが既定で信頼する鍵として扱うことを意味します。 単に特定のリポジトリにひもづいた鍵をそちらへ追加するのは、あまりよいやりかたではありません。

apt-keyから移行する方法

apt-keyを使ったやりかたから移行する方法はいくつかあります。

  • apt-keyを使ってキーリングに変換し、対象リポジトリとひもづける方法
  • gnupgを使ってキーリングに変換し、対象リポジトリとひもづける方法(おすすめ)

apt-keyはまだ使えるのでどちらを使っても同じです。ただ、今後削除されることを踏まえると、gnupgを使ったやりかたがおすすめです。

apt-keyを使ってキーリングに変換し、対象リポジトリとひもづける方法

インポート元の鍵がsample.keyで移行先のキーリングをarchive-keyring.gpgとした場合の変換は次のようにして行います。

$ apt-key --keyring ./archive-keyring.gpg add sample.key

apt-keyが削除され、使えなくなるまでは有効な方法です。apt-keyが削除されたあとに移行する必要がでてきたときは、gnupgを使いましょう。

キーリングを対象リポジトリとひもづける方法は後述します。

gnupgを使ってキーリングに変換し、対象リポジトリとひもづける方法(おすすめ)

インポート元の鍵がsample.keyで移行先のキーリングをarchive-keyring.gpgとした場合の変換は次のようにして行います。

$ gpg --no-default-keyring --keyring ./archive-keyring.gpg --import archive.key

期待通りに変換できたかは、fileコマンドを使うとわかります。

$ file archive-keyring.gpg
archive-keyring.gpg: GPG keybox database version 1 (省略)

上記のようにGPG keybox database version 1となっていれば期待通りに変換できています。

キーリングを対象リポジトリとひもづける方法は次で述べます。

変換したキーリングを対象リポジトリとひもづける方法

APTのデータ取得元設定リストでは、どの鍵で署名されたかを明示することができます。

そのため、サードパーティーの鍵は/usr/share/keyrings/配下において、 どの鍵で署名されているかをsigned-byで明示してひもづけるのがおすすめです。

変換したキーリングファイルがarchive-keyring.gpgであれば、次のようにして対象リポジトリとひもづけます。

/etc/sources.list.d/配下に置かれた取得元の設定リストは次のようになるはずです。

deb [signed-by=/usr/share/keyrings/archive-keyring.gpg] https://packages.example.com/debian stable main

このようにすることで、/etc/apt/trusted.gpg.d配下に変換後のキーリングを置かなくても、正規のリポジトリからパッケージをインストールできます。 キーリングが信用されるリポジトリの範囲を制限できるのでおすすめです。

まとめ

今回は、非推奨となったapt-keyから移行する方法について紹介しました。 Debian 11 (Bullseye)がapt-keyが使える最後のリリースです。Debian 12 (Bookworm)で削除されますので移行はお早めに。