Connect with us

Linux

apt-key è deprecato. Come aggiungere chiavi di firma del repository OpenPGP senza di essa su Debian, Ubuntu, Linux Mint, Pop! _OS, ecc.


pagina man deprecata apt-key

Questo articolo spiega come aggiungere in modo sicuro chiavi OpenPGP e repository APT di terze parti su distribuzioni Debian, Ubuntu e Linux basate su questi, come Linux Mint, Pop! _OS, OS elementare e così via, per sostituire il deprecato apt-key.

Quando si tenta di aggiungere una chiave di repository APT utilizzando apt-key sulle distribuzioni Debian, Ubuntu e Linux basate su queste, vedrai il seguente messaggio: “Attenzione: apt-key è deprecato. Gestisci invece i file di portachiavi in ​​trusted.gpg.d (vedi apt-key (8))“.

Il apt-key la pagina man menziona che il “l’uso di apt-key è deprecato, ad eccezione dell’uso di apt-key del negli script del manutentore per rimuovere le chiavi esistenti dal portachiavi principale“. Cosa c’è di più, “apt-key sarà disponibile per l’ultima volta in Debian 11 e Ubuntu 22.04.

La ragione di questa modifica è che quando si aggiunge una chiave OpenPGP utilizzata per firmare un repository APT /etc/apt/trusted.gpg o /etc/apt/trusted.gpg.d, la chiave è considerata attendibile incondizionatamente da APT su tutti gli altri repository configurati sul sistema che non dispongono di un file signed-by (vedi sotto) opzione, anche i repository Debian / Ubuntu ufficiali. Di conseguenza, qualsiasi repository APT non ufficiale a cui è stata aggiunta la sua chiave di firma /etc/apt/trusted.gpg o /etc/apt/trusted.gpg.d può sostituire qualsiasi pacchetto sul sistema. Quindi questa modifica è stata apportata per motivi di sicurezza (la tua sicurezza).

Vale anche la pena notare che mentre il apt-key messaggio di deprecazione dice a “gestire invece i file di portachiavi in ​​trusted.gpg.d“, il wiki Debian afferma diversamente, perché l’aggiunta di chiavi OpenPGP a /etc/apt/trusted.gpg e /etc/apt/trusted.gpg.d è altrettanto insicuro, come accennato in precedenza.

Puoi continuare a usare apt-key per ora poiché funziona ancora. Tuttavia, sarebbe una buona idea iniziare la transizione all’utilizzo di signed-by opzione come spiegato di seguito, soprattutto se gestisci un repository di terze parti.

Allora qual è il modo corretto e sicuro per aggiungere repository di terze parti (non ufficiali) e le loro chiavi di firma OpenPGP su distribuzioni Debian, Ubuntu e Linux basate su queste, come Linux Mint, Pop! _OS, OS elementare e così via, per sostituire il chiave apt deprecata?

1. Scarica la chiave del repository APT

Secondo il wiki Debian, la chiave dovrebbe essere scaricata tramite HTTPS in una posizione scrivibile solo da root, ad esempio /usr/share/keyrings. Il nome della chiave deve contenere un nome breve che descrive il repository, seguito da archive-keyring. Ad esempio, se viene chiamato il repository myrepository, il file della chiave dovrebbe essere denominato myrepository-archive-keyring.gpg.

Il file della chiave OpenPGP può essere protetto da ASCII oppure no. Per verificare se un file chiave è protetto da ASCII, scarica il file della chiave ed esegui questo comando (nota che l’estensione della chiave può essere .gpg, .asc, .key e probabilmente altre):

file <repo-key>.gpg

Se l’output di questo comando è simile al seguente, la chiave è armatura ascii:

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

Detto questo, ecco come scaricare e aggiungere correttamente e in sicurezza una chiave di firma del repository al tuo sistema:

  • Per chiavi OpenPGP con armatura ascii

Per scaricare utilizzando wget e aggiungere tale chiave OpenPGP al tuo sistema, usa:

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

Cosa fa / significa tutto in questo comando:

  • wget scarica la chiave da https://example.com/key/repo-key.gpg e restituisce la chiave per stdout (-O-). Sostituisci qui l’URL con l’URL della chiave che desideri scaricare e aggiungere al tuo sistema
  • gpg --dearmor: il gpg command è lo strumento di crittografia e firma OpenPGP; suo --dearmor opzione decomprime l’input da un’armatura ASCII OpenPGP
  • sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg: come super utente (sudo), leggi lo standard input, che in questo caso è l’output fornito da gpg --dearmore scrivi questo al /usr/share/keyrings/<myrepository>-archive-keyring.gpg file. Sostituisci il <myrepository> nome con un nome descrittivo per la chiave del repository che stai aggiungendo

Ad esempio, per aggiungere il repository APT dell’applicazione Signal, dovresti utilizzare:

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

O per usare il comando dato come esempio nel wiki Debian (è necessario eseguirlo come root, ad esempio dopo l’esecuzione sudo -i; utilizza curl invece di wget per scaricare la chiave):

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

Esempio di utilizzo di questo comando per aggiungere il repository APT di Signal:

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

  • Per chiavi OpenPGP non armate con ASCII

Scarica la chiave OpenPGP usando wget e aggiungila al tuo sistema usando:

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

O per usare il comando fornito come esempio nel wiki Debian (è necessario eseguirlo come root, ad esempio dopo l’esecuzione sudo -i):

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

Non ho aggiunto un esempio qui perché non sono riuscito a trovare un repository di terze parti che utilizza una chiave OpenPGP non armata con ASCII.

  • Per importare le chiavi OpenPGP direttamente da un server delle chiavi in ​​un file in formato /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>

Invece di hkp://keyserver.ubuntu.com:80, puoi usare qualche altro server chiave se lo desideri.

Esempio in cui importeremo la chiave OpenPGP di Linux Uprising Shutter PPA in /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg (l’impronta digitale può essere ottenuta facendo clic sul collegamento verde “Dettagli tecnici su questo PPA” dalla pagina PPA – è sotto “Aggiunta di questo PPA al sistema”):

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

Potrebbe piacerti anche: Come impedire l’aggiornamento di un pacchetto in Ubuntu, Debian o Linux Mint [APT]

2. Aggiungere la voce repository sources.list

Le voci del repository di terze parti sources.list dovrebbero essere aggiunte nel file /etc/apt/sources.list.d directory e non direttamente nella directory /etc/apt/sources.list file.

In precedenza, un file sources.list da /etc/apt/sources.list.d la directory sarebbe simile a questa:

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

Tuttavia, per poter utilizzare la chiave aggiunta al passaggio 1, la voce sources.list ora deve essere simile a questa (/etc/apt/sources.list.d/<myrepository.list>):

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

È importante notare qui che se vuoi aggiungere anche il file arch=amd64 opzione insieme a signed-by, devi separare le due opzioni da uno spazio, in questo modo:

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

Ad esempio, per aggiungere il repository Signal al tuo sistema Debian / Ubuntu, crea un file (come root; ad esempio per aprire l’editor di testo della riga di comando Nano con questo file: sudo nano /etc/apt/sources.list.d/signal.list) chiamato signal.list in /etc/apt/sources.list.d con i seguenti contenuti (supponendo che tu abbia già scaricato la chiave come spiegato sopra, come /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

Ricordati di correre sudo apt update dopo aver aggiunto una nuova chiave di firma e un nuovo repository, per aggiornare le sorgenti del software.

Puoi anche aggiungere il repository nel formato di file Deb822, ma per cercare di non complicare ulteriormente le cose, non lo spiegherò qui. Puoi leggere a riguardo sul wiki Debian.

Potrebbe piacerti anche: Come trovare il pacchetto che fornisce un file (installato o meno) su Ubuntu, Debian o Linux Mint

Come rimuovere una chiave OpenPGP già esistente aggiunta al portachiavi fidato di APT (/etc/apt/trusted.gpg o /etc/apt/trusted.gpg.d)

Quando si aggiungono le chiavi OpenGPG come spiegato sopra, ti consigliamo di rimuovere la stessa chiave da /etc/apt/trusted.gpg o /etc/apt/trusted.gpg.d, nel caso in cui l’hai aggiunta in precedenza. Senza farlo, non ci sono ulteriori vantaggi in termini di sicurezza.

Rimozione delle chiavi OpenPGP esistenti dal file /etc/apt/trusted.gpg.d directory dovrebbe essere abbastanza facile. Questo perché il nome del file della chiave dovrebbe essere piuttosto descrittivo. Ad esempio, il nome file della chiave gpg del repository Tor da questa directory sul mio sistema è deb.torproject.org-keyring.gpg

Quindi, per sbarazzarsi di chiavi già esistenti aggiunte a /etc/apt/trusted.gpg.d, tutto quello che devi fare è rimuovere i file chiave. Devi farlo come root, quindi apri il file manager di tua scelta come root, usando admin:// (ad esempio, per aprire una posizione come root in Nautilus, premere Ctrl + L in modo da poter digitare nella barra degli indirizzi e digitare admin:///etc/apt/trusted.gpg.d) o rimuoverli dalla riga di comando, utilizzando:

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

Le istruzioni seguenti funzionano anche per rimuovere le chiavi dal file /etc/apt/trusted.gpg.d directory.

Quanto a rimuovere le chiavi APT gpg memorizzate in /etc/apt/trusted.gpg, le cose sono un po ‘più complicate. Usa il seguente comando per elencare tutte le chiavi APT OpenPGP importate in entrambi /etc/apt/trusted.gpg e /etc/apt/trusted.gpg.d:

apt-key list

Le chiavi memorizzate in /etc/apt/trusted.gpg dovrebbe essere elencato in alto, seguito dai tasti del file /etc/apt/trusted.gpg.d directory. Dovrai ispezionare la chiave uid per capire la chiave che vuoi rimuovere. Di solito, l’uid dovrebbe mostrare l’azienda o l’utente che ha firmato la chiave, seguito dal loro indirizzo email.

Chiavi da /etc/apt/trusted.gpg sono elencati da apt-key elenco come questo (esempio):

pub   rsa4096 2016-04-22 [SC]

      B9F8 D658 297A F3EF C18D  5CDF A2F6 83C5 2980 AECF

uid           [ unknown] Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>

sub   rsa4096 2016-04-22 [E]

L’ID chiave è costituito dagli ultimi 8 caratteri dell’impronta digitale della chiave GPG (quindi in questo esempio è 2980AECF).

Per eliminare una chiave (da entrambi /etc/apt/trusted.gpg o /etc/apt/trusted.gpg.d), ora puoi usare:

sudo apt-key del <KEY-ID>

Ad esempio, per eliminare la chiave dall’esempio precedente, dovresti utilizzare:

sudo apt-key del 2980AECF

Potrebbe piacerti: Come elencare tutti i pacchetti in un repository su Ubuntu, Debian o Linux Mint [APT]

Riferimenti:

Grazie a u / ZebNemeth per il suggerimento!


Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!

Click to comment

Leave a Reply

Esegui l'accesso per Commentare

Di tendenza

Close Popup
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici necessari:
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • swpm_session

Google Adsense
Usiamo la pubblicità di Google solo per mantenere attivi i nostro sito. Con ip anonimizzati.

Rifiuta tutti i Servizi
Save
Accetta tutti i Servizi