Linux Terminal

Corectați problema de chei depreciate în Linux

Se mai întâmplă ca atunci când rulați comenzile de actualizare apt update și apt upgrade, doar pentru a vedea dacă există actualizări. Și după rularea comenzi de actualizare, ceva nu pare să fie în regulă; și vedeți mesaje de genul:

W: https://updates.example.com/desktop/apt/dists/xenial/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

Este adevărat că este doar un avertisment, dar totuși există acel cuvânt îngrijorător, DEPRECATION (depreciere), care de obicei înseamnă că va dispărea în curând.

Pornind de la mesajul de avertizare, se va rula man apt-key în linia de comandă, de unde se pot extrage câteva informații utile – aproape de începutul pagini man.

apt-key is used to manage the list of keys used by apt to authenticate packages. Packages which have been authenticated using these keys are considered trusted.
Use of apt-key is deprecated, except for the use of apt-key del in maintainer scripts to remove existing keys from the main keyring. If such usage of apt-key is desired, the additional installation of the GNU Privacy Guard suite (packaged in gnupg) is required.
apt-key(8) will last be available in Debian 11 and Ubuntu 22.04.

Corectarea problemei de depreciere a chei

Mai departe, în pagina de manual, există secțiunea de depreciere menționată în avertismentul de la apt update.

DEPRECATION
Except for using apt-key del in maintainer scripts, the use of apt-key is deprecated. This section shows how to replace the existing use of apt-key.
If your existing use of apt-key add looks like this:

wget -qO- https://myrepo.example/myrepo.asc | sudo apt-key add -

Then you can directly replace this with (though note the recommendation below):

wget -qO- https://myrepo.example/myrepo.asc | sudo tee /etc/apt/trusted.gpg.d/myrepo.asc

Make sure to use the "asc" extension for ASCII armored keys and the "gpg" extension for the binary OpenPGP format (also known as "GPG key public ring"). The binary OpenPGP format works for all apt versions, while the ASCII armored format works for apt version >= 1.4.

Recommended: Instead of placing keys into the /etc/apt/trusted.gpg.d directory, you can place them anywhere on your filesystem by using the Signed-By option in your sources.list and pointing to the filename of the key. See sources.list(5) for details. Since APT 2.4, /etc/apt/keyrings is provided as the recommended location for keys not managed by packages. When using a deb822-style sources.list, and with apt version >= 2.4, the Signed-By option can also be used to include the full ASCII armored keyring directly in the sources.list without an additional file.

Dacă aveți chei de la chestii care nu sunt din depozite adăugate cu apt-key, atunci iată care sunt pașii de tranziție:

  • Determinați ce chei sunt în apt-key keyring /etc/apt/trusted.gpg.
  • Eliminați-le.
  • Găsiți și instalați înlocuitorii în /etc/apt/trusted/gpg.d sau în /etc/apt/keyring.

Găsirea cheilor vechi

Comanda apt-key list arată cheile din /etc/apt/trusted.gpg.

$ sudo apt-key list
[sudo] password: 
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2017-04-05 [SC]
      DBE4 6B52 81D0 C816 F630  E889 D980 A174 57F6 FB86
uid           [ unknown] Example <support@example.com>
sub   rsa4096 2017-04-05 [E]

pub   rsa4096 2016-04-12 [SC]
      EB4C 1BFD 4F04 2F6D DDCC  EC91 7721 F63B D38B 4796
uid           [ unknown] Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>
sub   rsa4096 2021-10-26 [S] [expires: 2024-10-25]
[...]

De asemenea, în continuare sunt afișate cheile păstrate în fișierele din directorul /etc/apt/trusted.gpg.d.

Îndepărtarea cheilor vechi

Grupul de numere hexazecimale, de exemplu DBEA 6B52…FB86, este codul de identificare necesar pentru a șterge cheile inutile.

$ sudo apt-key del "DBEA 6B52 81D0 C816 F630  E889 D980 A174 57F6 FB86"

În acest fel se elimină cheia Example. Aceasta este literalmente doar un exemplu, iar în realitate ați scăpat de cheile reale care există.

Cheile de pe sistemul dvs. vor varia în funcție de ce ați instalat.

Adăugarea de chei

Obținerea cheilor de înlocuire depinde de aplicație. De exemplu, Signal oferă cheia sa și o explicație a ceea ce trebuie făcut pentru a o instala.

Dar nu este obligatoriu să faceți ca în exemplu, deoarece pune cheia în /usr/share/keyrins. În schimb puteți proceda astfel:

$ wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > signal-desktop-keyring.gpg
$ sudo mv signal-desktop-keyring.gpg /etc/apt/trusted.gpg.d/
$ sudo chown root:root /etc/apt/trusted.gpg.d/signal-desktop-keyring.gpg
$ sudo chmod ugo+r /etc/apt/trusted.gpg.d/signal-desktop-keyring.gpg
$ sudo chmod go-w /etc/apt/trusted.gpg.d/signal-desktop-keyring.gpg

Ascensio oferă instrucțiuni pentru instalarea OnlyOffice, care include și gestionarea cheii GPG. Din nou, puteți proceda astfel:

$ gpg --no-default-keyring --keyring gnupg-ring:~/onlyoffice.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys CB2DE8E5
$ sudo mv onlyoffice.gpg /etc/apt/trusted.gpg.d/
$ sudo chown root:root /etc/apt/trusted.gpg.d/onlyoffice.gpg
$ sudo chmod ugo+r /etc/apt/trusted.gpg.d/onlyoffice.gpg
$ sudo chmod go-w /etc/apt/trusted.gpg.d/onlyoffice.gpg

În ceea ce privește cheia Google, aceasta este gestionată (în mod corect) prin intermediul pachetului .deb, așa că a fost nevoie doar de o simplă reinstalare cu dpkg -i. În cele din urmă, s-a ajuns la acest rezultat:

$ ls -l /etc/apt/trusted.gpg.d
total 24
-rw-r--r-- 1 root root 7821 Sep  2 10:55 google-chrome.gpg
-rw-r--r-- 1 root root 2279 Sep  2 08:27 onlyoffice.gpg
-rw-r--r-- 1 root root 2223 Sep  2 08:02 signal-desktop-keyring.gpg
-rw-r--r-- 1 root root 2794 Mar 26  2021 ubuntu-keyring-2012-cdimage.gpg
-rw-r--r-- 1 root root 1733 Mar 26  2021 ubuntu-keyring-2018-archive.gpg

Chei expirate

De exemplu, o problemă cu o cheie care a provenit de la o instalare neactualizată a QGIS. Cheia expirase, iar ea a fost configurată pentru a fi gestionată de apt-key.

S-a ajuns la a se urmări instrucțiunilor lor, atât pentru a instalarea unei noi chei în /etc/apt/keyrings, cât și pentru formatul sugerat de ei pentru configurația de instalare în /etc/apt/source.list.d/qgis.sources.

Întreținerea sistemului

Acum puteți rula apt update fără avertismente legate de configurațiile de chei depreciate.

Utilizatorii de apt, trebuie doar să își aducă aminte să ajusteze orice instrucțiune de instalare mai veche care depinde de apt-key.

În loc să folosiți apt-key, trebuie să instalați în schimb o cheie în /etc/apt/trusted.gpg.d/ sau în /etc/apt/keyrings/, folosind gpg după cum este necesar.

ThinkRoot99

Numele meu este Cristian Moldovan și sunt utilizator de Linux de peste 10 ani.Am făcut parte din mai multe echipe open source din România: Fundația Ceata, Linux Mint România, Rogentos Linux Group. Între 2014 și 2018 am fost propietarul și editorul site-ului de știri despre linux, gnulinux.ro și actual proprietar al rootlinux.ro

View all posts by ThinkRoot99 →

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *