Scaricare le chiavi per apt-get




en it

il server delle chiavi pgp e' stato rimosso: subkeys.pgp.net e' diventato pool.sks-keyservers.net. La guida e' stata aggiornata

Vi è mai capitato di aggiornare la vostra Debian ( o Debian based ) e, dopo aver aggiunto il repository che tanto avete cercato, di ritrovarvi in una situazione tipo :

W:GPG error: http://ftp.debian-unofficial.org sid Release: The following signatures couldn’t be verified because the public key is not available:NO_PUBKEY 394D199524C52AC3

W: You may want to run apt-get update to correct these problems

bhè, con un po' di fortuna e due comandi, il problema si risolve. Prima i comandi, poi i commenti .

gpg --keyserver pool.sks-keyservers.net --recv-keys <chiave>

gpg --armor --export <chiave> | sudo apt-key add -

Passiamo alla spiegazione.

La prima riga di comando richiede a gpg di scaricare la <chiave> che state cercando, nell'esempio 394D199524C52AC3, da un server di chiavi pubbliche e di inserirla nel vostro database delle chiavi pubbliche.

La seconda riga sono due comandi uniti da una pipe (|) : esporta la <chiave> dal database locale e importala, come root, nel database delle chiavi pubbliche di apt-get.

Semplice no ?

Talmente semplice che è possibile, con un minimo sforzo, farsi uno script da richiamare al volo e a cui passare la chiave da ricercare. Come ? Semplice !! Basta sostituire <chiave> con $1, ovvero il primo parametro in input dello script. Con il nostro editor di testo preferito ( il mio è joe ) create un file che contenga le seguenti righe di codice :

#!/bin/bash
gpg --keyserver pool.sks-keyservers.net --recv-keys $1
gpg --armor --export $1 | sudo apt-key add -

Salvatelo con un nome che sia abbastanza semplice da ricordare ( ad esempio getAptKey ) e dategli i permessi di esecuzione :


chmod +x getAptKey

a questo punto non vi resta che provare (esempio) !!

./getAptKey 394D199524C52AC3

Buon aggiornamento !!!