この記事では、サードパーティの OpenPGP キーと APT リポジトリを、Linux Mint や Pop! _OS、Elementary OS など、古いものを置き換える apt-key
.
apt-key
で APT リポジトリ キーを追加しようとすると、 それに基づく Debian、Ubuntu、および Linux ディストリビューションでは、次のメッセージが表示されます。警告:apt-key が古くなっています。代わりに、Trusted.gpg.d でキーチェーン ファイルを管理します (apt-key (8) を参照) 「.
apt-key
man ページには、「apt-key の使用は廃止されましたが、メンテナ スクリプトで apt-key del を使用してマスター キーリングから既存のキーを削除することは例外です 」。さらに、"apt-key は Debian 11 と Ubuntu 22.04 で最後に利用可能になります . 「
この変更の理由は、APT リポジトリに署名するために使用される OpenPGP キーを追加すると、/etc/apt/trusted.gpg
または /etc/apt/trusted.gpg.d
、キーは、システムで構成されていない他のすべてのリポジトリで APT によって使用されます。無条件に信頼している signed-by
(以下を参照)オプション、公式の Debian / Ubuntu リポジトリでさえ。その結果、署名鍵が追加された非公式の APT リポジトリは /etc/apt/trusted.gpg
になります。 または /etc/apt/trusted.gpg.d
システム上の任意のパッケージを置き換えることができます。したがって、この変更はセキュリティ上の理由 (セキュリティ) のために行われました。
apt-key
の間、 設定メッセージは「代わりに、Trusted.gpg.d でキーチェーン ファイルを管理してください」 「、Debian Wiki は別のことを言っています。これは、OpenPGP キーを /etc/apt/trusted.gpg
に追加するためです。 および /etc/apt/trusted.gpg.d
apt-key は引き続き機能するため、今のところ引き続き使用できます。ただし、signed-by
の使用に移行することをお勧めします。 特にサードパーティのリポジトリを維持している場合は、以下で説明するオプション。
Linux Mint や Pop! _古い apt キーからの OS、基本 OS など?
1. APT リポジトリ キーをダウンロード
たとえば、Debian Wiki によると、キーは HTTPS 経由でルート /usr/share/keyrings
だけが書き込める場所にダウンロードする必要があります。 .キー名には、リポジトリを説明する短い名前とそれに続く archive-keyring
を含める必要があります .たとえば、リポジトリが myrepository
と呼ばれる場合 、キーファイルの名前は myrepository-archive-keyring.gpg
にする必要があります .
OpenPGP 鍵ファイルは、ASCII で保護されている場合とそうでない場合があります。 鍵ファイルが ascii-armor かどうかを確認する方法 、キー ファイルをダウンロードして、このコマンドを実行します (キーの拡張子は .gpg、.asc、.key などである可能性があることに注意してください ):
file <repo-key>.gpg
このコマンドの出力が次のような場合、キーは ASCII アーマードです:
repo-key.gpg: PGP public key block Public-Key (old)
ただし、リポジトリ署名キーを適切かつ安全にダウンロードしてシステムに追加する方法は次のとおりです:
- ASCII アーマード OpenPGP キーの場合
wget を使用してダウンロードし、そのような OpenPGP キーをシステムに追加するには、次を使用します。
wget -O- <https://example.com/key/repo-key.gpg> | gpg --dearmor | sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg
このコマンドのすべての意味 / 意味:
-
wget
https://example.com/key/repo-key.gpg
からキーをダウンロードします stdout にキーを渡します (-O-
)。ここの URL を、ダウンロードしてシステムに追加するキーの URL に置き換えてください -
gpg --dearmor
:gpg
Command は OpenPGP 暗号化および署名ツールです。--dearmor
です オプションは、OpenPGP-ASCII アーマーからの入力をアンパックします -
sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg
:スーパーユーザーとして (sudo
)、標準入力を読み取ります。この場合はgpg --dearmor
の出力です 、これを/usr/share/keyrings/<myrepository>-archive-keyring.gpg
に書き込みます ファイル。その<myrepository>
を置き換えます 追加するリポジトリ キーのわかりやすい名前を付けた名前
たとえば、APT リポジトリを Signal アプリケーションに追加するには、次を使用します。
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/signal-archive-keyring.gpg
または、Debian wiki で例として示されているコマンドを使用するには (例:sudo -i
を実行した後、root として実行する必要があります);使った curl
wget
の代わりに キーをダウンロードします):
curl <https://example.com/key/repo-key.gpg> | gpg --dearmor > /usr/share/keyrings/<myrepository>-archive-keyring.gpg
このコマンドを使用して Signal APT リポジトリを追加する例:
curl https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > /usr/share/keyrings/signal-archive-keyring.gpg
- 非 ASCII アーマード OpenPGP キーの場合
wget を使用して OpenPGP キーをダウンロードし、次を使用してシステムに追加します。
wget -O- <https://example.com/key/repo-key.gpg> | sudo tee /usr/share/keyrings/<myrepository-archive-keyring.gpg>
または、Debian wiki で例として示されているコマンドを使用するには (例:sudo -i
を実行した後、root として実行する必要があります) ):
wget -O /usr/share/keyrings/<myrepository-archive-keyring.gpg> <https://example.com/key/repo-key.gpg>
ASCII で保護されていない OpenPGP キーを使用するサードパーティのリポジトリが見つからなかったため、ここに例を追加しませんでした。
/usr/share/keyrings
で OpenPGP キーをキー サーバーからファイルに直接インポートする方法 :
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/<myrepository>-archive-keyring.gpg --keyserver <hkp://keyserver.ubuntu.com:80> --recv-keys <fingerprint>
hkp://keyserver.ubuntu.com:80
の代わりに 、必要に応じて別の鍵サーバーを使用できます。
Linux Uprising Shutter PPA の OpenPGP キーを /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg
にインポートする例 (フィンガープリントは、PPA ページの緑色のリンク「この PPA に関する技術的詳細」をクリックして取得できます。「この PPA をシステムに追加する」の下にあります):
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 1CC3D16E460A94EE17FE581CEA8CACC073C3DB2A
これも好きかもしれません:Ubuntu、Debian、または Linux Mint でパッケージが更新されないようにする方法 [APT]
2.リポジトリのエントリ source.list を追加します
サード パーティのリポジトリ エントリをリスト /etc/apt/sources.list.d
に追加する必要があります ディレクトリであり、/etc/apt/sources.list
に直接ではありません ファイル。
以前は /etc/apt/sources.list.d
の sources.list ファイルがありました ディレクトリは次のようになります:
deb https://repository.example.com/debian/ stable main
ただし、手順 1 で追加したキーを使用できるようにするには、sources.list エントリを次のようにする必要があります (/etc/apt/sources.list.d/<myrepository.list>
):
deb [signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>
arch=amd64
も使用している場合は、ここで注意することが重要です。 signed-by
と組み合わせたオプション 、次のように 2 つのオプションをスペースで区切る必要があります:
deb [arch=amd64 signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>
たとえば、シグナル リポジトリを Debian / Ubuntu システムに追加するには、ファイルを作成します (root として。たとえば、このファイルで Nano コマンド ライン テキスト エディタを開くには:sudo nano /etc/apt/sources.list.d/signal.list
) signal.list
という名前 /etc/apt/sources.list.d
で 次の内容で (上記のように /usr/share/keyrings/signal-archive-keyring.gpg
としてキーを既にダウンロードしている場合) ):
deb [arch=amd64 signed-by=/usr/share/keyrings/signal-archive-keyring.gpg] https://updates.signal.org/desktop/apt xenial main
sudo apt update
を実行することを忘れないでください 新しい署名キーとリポジトリを追加してソフトウェア ソースを更新した後。
リポジトリを Deb822 ファイル形式で追加することもできますが、これ以上複雑にならないように、ここでは説明しません。これは Debian wiki で読むことができます。
これも好きかもしれません:Ubuntu、Debian、または Linux Mint に (インストールされているかどうかに関係なく) ファイルをデプロイするパッケージを見つける方法
信頼できる APT キーリング (/etc/apt/trusted.gpg または /etc/apt/trusted.gpg.d) に追加された既存の OpenPGP キーを削除する方法
上記のように OpenGPG キーを追加する場合、同じキーを /etc/apt/trusted.gpg または /etc/apt/trusted.gpg.d に追加したことがある場合は、そこから削除する必要があります。これがなければ、追加のセキュリティ上の利点はありません。
/etc/apt/trusted.gpg.d
から既存の OpenPGP キーを削除します ディレクトリ かなり簡単なはずです。これは、キー ファイル名がわかりやすいものであるためです。たとえば、このディレクトリの Tor リポジトリ gpg キーのファイル名は、私のシステムでは deb.torproject.org-keyring.gpg
です。
/etc/apt/trusted.gpg.d
追加された既存のキーを削除するには 、キーファイルを削除するだけです。これは root として行う必要があるため、選択したファイル マネージャーを root として admin://
で開きます。 (たとえば、Nautilus でルートとして場所を開くには、Ctrl + L
を押します そのため、アドレスバー admin:///etc/apt/trusted.gpg.d
に入力して入力できます )またはコマンドラインから削除します:
sudo rm /etc/apt/trusted.gpg.d/<myrepository-keyring.gpg>
次の手順は、/etc/apt/trusted.gpg.d
からキーを削除する場合にも有効です ディレクトリ。
/etc/apt/trusted.gpg
に保存されている APT-GPG キーの削除について 、物事はもう少し複雑です。次のコマンドを使用して、両方の /etc/apt/trusted.gpg
にインポートされたすべての APT OpenPGP キーを一覧表示します。 および /etc/apt/trusted.gpg.d
:
apt-key list
/etc/apt/trusted.gpg
に格納されているキー 上にリストされ、その後に /etc/apt/trusted.gpg.d
からのキーが続く必要があります ディレクトリ。キー uid
を確認する必要があります 削除するキーを見つけます。通常、UID には、キーに署名した会社またはユーザーと、それに続く電子メール アドレスが表示されます。
/etc/apt/trusted.gpg
の鍵 apt-key
でリストされています 次のようにリストします (例):
pub rsa4096 2016-04-22 [SC]
B9F8 D658 297A F3EF C18D 5CDF A2F6 83C5 2980 AECF
uid [ unknown] Oracle Corporation (VirtualBox archive signing key) <[email protected]>
sub rsa4096 2016-04-22 [E]
キー ID は、GPG キーのフィンガープリントの最後の 8 文字です (この例では、これらは 2980AECF
です) ).
キーを削除するには (/etc/apt/trusted.gpg
のいずれかから) または /etc/apt/trusted.gpg.d
)、使用できるようになりました:
sudo apt-key del <KEY-ID>
たとえば、上記の例からキーを削除するには、次を使用します:
sudo apt-key del 2980AECF
お勧め:Ubuntu、Debian、または Linux Mint のリポジトリにあるすべてのパッケージを一覧表示する方法 [APT]
参照:
- https://wiki.debian.org/DebianRepository/UseThirdParty
- https://askubuntu.com/a/1307181/1149075
- https://zebnemeth.wordpress.com/2021/01/15/install-signal-desktop-using-gpg/
- https://github.com/docker/docker.github.io/issues/11625
その提案をしてくれた u / ZebNemeth に感謝します!