この記事では、サードパーティの 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
このコマンドのすべての意味 / 意味:
-
wgethttps://example.com/key/repo-key.gpgからキーをダウンロードします stdout にキーを渡します (-O-)。ここの URL を、ダウンロードしてシステムに追加するキーの URL に置き換えてください -
gpg --dearmor:gpgCommand は 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 に感謝します!