GNU/Linux >> Znalost Linux >  >> Debian

apt-key je zastaralý. Jak přidat podpisové klíče úložiště OpenPGP bez nich na Debian, Ubuntu, Linux Mint, Pop! _OS atd.

Tento článek vysvětluje, jak bezpečně přidat klíče OpenPGP a úložiště APT třetích stran do distribucí Debian, Ubuntu a Linuxu, které jsou na nich založené, jako je Linux Mint, Pop! _OS, Elementary OS atd. nahradit zastaralé apt-key .

Pokud se pokusíte přidat klíč úložiště APT s apt-key na distribucích Debian, Ubuntu a Linuxu, které jsou na něm založené, uvidíte následující zprávu:Upozornění:apt-key je zastaralý. Místo toho spravujte soubory keychain v Trusted.gpg.d (viz apt-key (8)) “.

apt-key manuálová stránka zmiňuje, že „Použití apt-key je zastaralé, s výjimkou použití apt-key del ve skriptech správce k odstranění existujících klíčů z hlavního svazku klíčů “. A co víc,“apt-key bude naposledy dostupný v Debianu 11 a Ubuntu 22.04 .

Důvodem této změny je, že při přidání klíče OpenPGP, který se používá k podepsání úložiště APT, /etc/apt/trusted.gpg nebo /etc/apt/trusted.gpg.d , klíč používá APT na všech ostatních úložištích nakonfigurovaných v systému, která nemají a. bezvýhradně důvěřovali signed-by (viz níže) možnost, dokonce i oficiální úložiště Debian / Ubuntu. V důsledku toho bude jakékoli neoficiální úložiště APT, do kterého byl přidán jeho podpisový klíč, /etc/apt/trusted.gpg nebo /etc/apt/trusted.gpg.d může nahradit jakýkoli balíček v systému. Takže tato změna byla provedena z bezpečnostních důvodů (vaše zabezpečení).

Za zmínku také stojí, že během apt-key Zpráva nastavení říká „Místo toho spravujte soubory klíčenky na Trusted.gpg.d “, Debian Wiki říká něco jiného. Důvodem je přidání klíčů OpenPGP do /etc/apt/trusted.gpg a /etc/apt/trusted.gpg.d je, jak je uvedeno výše, stejně nebezpečné.

Zatím můžete nadále používat apt-key, protože stále funguje. Bylo by však dobré začít s přechodem na používání signed-by Možnost, jak je vysvětleno níže, zejména pokud spravujete úložiště třetí strany.

Jaký je tedy správný a bezpečný způsob, jak získat (neoficiální) repozitáře třetích stran a jejich podpisové klíče OpenPGP na distribucích Debian, Ubuntu a Linuxu založených na nich, jako je Linux Mint, Pop! _OS, Elementary OS atd. ze zastaralých klíčů apt?

1. Stáhněte si klíč úložiště APT

Například podle Debian Wiki by měl být klíč stažen přes HTTPS do umístění, které může zapsat pouze root /usr/share/keyrings . Název klíče by měl obsahovat krátký název popisující úložiště následovaný archive-keyring . Například když se úložiště nazývá myrepository , soubor klíče by se měl jmenovat myrepository-archive-keyring.gpg .

Soubor klíče OpenPGP může nebo nemusí být obrněný ASCII. Jak zkontrolovat, zda je soubor klíče ascii-obrněný , stáhněte si soubor klíče a spusťte tento příkaz (Upozorňujeme, že přípona klíče může být .gpg, .asc, .key a pravděpodobně i další ):

file <repo-key>.gpg

Pokud je výstup z tohoto příkazu podobný následujícímu, klíč je ASCII armored:

repo-key.gpg: PGP public key block Public-Key (old)

Zde je však návod, jak si správně a bezpečně stáhnout podpisový klíč úložiště a přidat jej do systému:

  • Pro ASCII obrněné klíče OpenPGP

Chcete-li stáhnout pomocí wget a přidat takový klíč OpenPGP do vašeho systému, použijte:

wget -O- <https://example.com/key/repo-key.gpg> | gpg --dearmor | sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg

Co všechno v tomto příkazu znamená / znamená:

  • wget stáhne klíč z https://example.com/key/repo-key.gpg a předá klíč stdout (-O- ). Zde nahraďte adresu URL adresou URL klíče, který chcete stáhnout a přidat do systému
  • gpg --dearmor :gpg Command je nástroj pro šifrování a podepisování OpenPGP; je to --dearmor Option rozbalí vstup z brnění OpenPGP-ASCII
  • sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg :jako superuživatel (sudo ), přečtěte si standardní vstup, v tomto případě výstup gpg --dearmor a zapište to do /usr/share/keyrings/<myrepository>-archive-keyring.gpg Soubor. Nahraďte toto <myrepository> název s popisným názvem pro klíč úložiště, který přidáváte

Chcete-li například přidat úložiště APT do aplikace Signal, použijte:

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/signal-archive-keyring.gpg

Nebo použít příkaz uvedený jako příklad na wiki Debianu (musíte jej spustit jako root, např. po jeho spuštění sudo -i; použil to curl Místo wget ke stažení klíče):

curl <https://example.com/key/repo-key.gpg> | gpg --dearmor > /usr/share/keyrings/<myrepository>-archive-keyring.gpg

Příklad použití tohoto příkazu k přidání úložiště Signal APT:

curl https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > /usr/share/keyrings/signal-archive-keyring.gpg

  • Pro neascii obrněné klíče OpenPGP

Stáhněte si klíč OpenPGP pomocí wget a přidejte jej do systému pomocí:

wget -O- <https://example.com/key/repo-key.gpg> | sudo tee /usr/share/keyrings/<myrepository-archive-keyring.gpg>

Nebo použít příkaz uvedený jako příklad na wiki Debianu (musíte jej spustit jako root, např. po jeho spuštění sudo -i ):

wget -O /usr/share/keyrings/<myrepository-archive-keyring.gpg> <https://example.com/key/repo-key.gpg>

Nepřidal jsem sem příklad, protože jsem nemohl najít úložiště třetí strany, které používá klíč OpenPGP nechráněný ASCII.

  • Jak importovat klíče OpenPGP přímo ze serveru klíčů do souboru v /usr/share/keyrings :

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/<myrepository>-archive-keyring.gpg --keyserver <hkp://keyserver.ubuntu.com:80> --recv-keys <fingerprint>

Místo hkp://keyserver.ubuntu.com:80 , můžete v případě potřeby použít jiný klíčový server.

Příklad, ve kterém importujeme klíč OpenPGP z Linux Uprising Shutter PPA do /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg (Otisk prstu získáte kliknutím na zelený odkaz „Technické podrobnosti o této PPA“ na stránce PPA – nachází se v části „Přidat tuto PPA do vašeho systému“):

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 1CC3D16E460A94EE17FE581CEA8CACC073C3DB2A

Mohlo by se vám také líbit toto:Jak zabránit aktualizaci balíčku v Ubuntu, Debianu nebo Linux Mintu [APT]


2. Přidejte položku source.list pro úložiště

Položky úložiště třetích stran by měly být přidány do seznamu /etc/apt/sources.list.d Adresář a ne přímo v /etc/apt/sources.list Soubor.

Dříve existoval soubor sources.list z /etc/apt/sources.list.d Adresář by vypadal takto:

deb https://repository.example.com/debian/ stable main

Aby však bylo možné použít klíč přidaný v kroku 1, musí nyní položka sources.list vypadat takto (/etc/apt/sources.list.d/<myrepository.list> ):

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

Zde je důležité poznamenat, že pokud používáte také arch=amd64 Možnost spolu s signed-by , je třeba oddělit dvě možnosti mezerou následovně:

deb [arch=amd64 signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>

Chcete-li například přidat úložiště signálu do svého systému Debian / Ubuntu, vytvořte soubor (jako root; například pro otevření textového editoru příkazového řádku Nano s tímto souborem:sudo nano /etc/apt/sources.list.d/signal.list ) s názvem signal.list v /etc/apt/sources.list.d s následujícím obsahem (za předpokladu, že jste si již stáhli klíč, jak je popsáno výše, jako /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

Nezapomeňte spustit sudo apt update po přidání nového podpisového klíče a úložiště pro aktualizaci zdrojů softwaru.

Můžete také přidat úložiště ve formátu souboru Deb822, ale abych to ještě nekomplikoval, nebudu to zde vysvětlovat. Můžete si to přečíst na wiki Debianu.

Mohlo by se vám také líbit:Jak najít balíček, který nasazuje soubor (nainstalovaný nebo ne) na Ubuntu, Debian nebo Linux Mint

Jak odstranit existující klíč OpenPGP, který byl přidán do důvěryhodného svazku klíčů APT (/etc/apt/trusted.gpg nebo /etc/apt/trusted.gpg.d)

Při přidávání klíčů OpenGPG, jak je popsáno výše, byste měli odstranit stejný klíč z /etc/apt/trusted.gpg nebo /etc/apt/trusted.gpg.d, pokud jste jej tam dříve přidali. Bez toho není žádná další bezpečnostní výhoda.

Odstraňte stávající klíče OpenPGP z /etc/apt/trusted.gpg.d adresář by mělo být docela snadné. Je to proto, že název souboru klíče by měl být docela popisný. Například název souboru gpg klíče úložiště Tor z tohoto adresáře je v mém systému deb.torproject.org-keyring.gpg

Chcete-li se zbavit již existujících klíčů, které byly přidány /etc/apt/trusted.gpg.d , stačí odstranit klíčové soubory. Budete to muset udělat jako root, takže buď otevřete správce souborů podle svého výběru jako root s admin:// (Chcete-li například otevřít umístění jako root v Nautilu, stiskněte Ctrl + L Můžete tedy zadat a zadat do adresního řádku admin:///etc/apt/trusted.gpg.d ) nebo jej odeberte z příkazového řádku pomocí:

sudo rm /etc/apt/trusted.gpg.d/<myrepository-keyring.gpg>

Následující pokyny fungují také pro odebrání klíčů z /etc/apt/trusted.gpg.d Adresář.

Pokud jde o Odstranění klíčů APT-GPG uložených v /etc/apt/trusted.gpg , věci jsou trochu složitější. Pomocí následujícího příkazu vypište všechny klíče APT OpenPGP, které byly importovány do obou /etc/apt/trusted.gpg a /etc/apt/trusted.gpg.d :

apt-key list

Klíče uložené v /etc/apt/trusted.gpg by měly být uvedeny výše a za nimi následují klíče z /etc/apt/trusted.gpg.d Adresář. Musíte zkontrolovat klíč uid abyste zjistili, který klíč odstranit. Obvykle by UID mělo ukazovat společnost nebo uživatele, kteří podepsali klíč, následovanou jejich e-mailovou adresou.

Klíč /etc/apt/trusted.gpg jsou uvedeny podle apt-key Seznam takto (příklad):

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 klíče je posledních 8 znaků otisku klíče GPG (v tomto příkladu jsou to 2980AECF ).

Chcete-li odstranit klíč (z jednoho z /etc/apt/trusted.gpg nebo /etc/apt/trusted.gpg.d ), nyní můžete použít:

sudo apt-key del <KEY-ID>

Chcete-li například odstranit klíč z výše uvedeného příkladu, použijte:

sudo apt-key del 2980AECF

Mohlo by se vám líbit toto:Jak vypsat seznam všech balíčků v úložišti na Ubuntu, Debian nebo Linux Mint [APT]

Reference:

  • 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

Díky u / ZebNemeth za tento návrh!


Debian
  1. Debian – nelze přidat klíč Gpg s klíčem Apt za proxy?

  2. Jak zkompilovat a nainstalovat wxWidgets na Ubuntu/Debian/Linux Mint

  3. Jak nainstalovat Oracle Java 16 na Debian, Ubuntu, Pop! _OS nebo Linux Mint pomocí úložiště APT PPA

  1. Jak nainstalovat Oracle Java 15 na Ubuntu, Debian nebo Linux Mint pomocí úložiště APT PPA

  2. Jak zabránit aktualizaci balíčku v Ubuntu, Debianu nebo Linux Mintu [APT]

  3. Jak vypsat všechny balíčky v úložišti na Ubuntu, Debian nebo Linux Mint [APT]

  1. Jak nainstalovat Pip na Ubuntu 18.04, Debian 9 a Linux Mint 19

  2. Jak nainstalovat VLC 2.0.6 na Ubuntu 12.10, Linux Mint 14

  3. Jak nainstalovat a používat Tor (klient) jako proxy v Ubuntu, Pop! _OS nebo Linux Mint