GNU/Linux >> Linux の 問題 >  >> Debian

apt-key が古くなっています。 Debian、Ubuntu、Linux Mint、Pop! で、OpenPGP リポジトリ署名キーを追加せずに追加する方法_OSなど

この記事では、サードパーティの 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 に感謝します!


Debian
  1. Debian / UbuntuのMySQLAPTリポジトリのGPGキーを更新するにはどうすればよいですか?

  2. Debian –プロキシの背後にAptキーを使用してGpgキーを追加できませんか?

  3. Ubuntu / Debian /LinuxMintでwxWidgetsをコンパイルしてインストールする方法

  1. Oracle Java 16 を Debian、Ubuntu、Pop! にインストールする方法_APT PPA リポジトリを使用する OS または Linux Mint

  2. APT PPA リポジトリを使用して Ubuntu、Debian、または Linux Mint に Oracle Java 15 をインストールする方法

  3. Ubuntu、Debian、または Linux Mint でパッケージが更新されないようにする方法 [APT]

  1. Ubuntu 18.04、Debian 9、LinuxMint19にPipをインストールする方法

  2. Ubuntu 11.10 / 12.04、LinuxMint12にVLC1.1.13をインストールする方法

  3. Ubuntu で Tor (クライアント) をプロキシとしてインストールして使用する方法、Pop! _OS または Linux Mint