apt ažuriranje ne uspijeva s NO_PUBKEY nakon dodavanja VPN repozitorija
NO_PUBKEY i nedostajuća datoteka Release pogreške su povjerenja, a ne mrežni kvarovi. Odlučite hoćete li prikvačiti ključ dobavljača pomoću signed-by ili ukloniti izvor.
apt izvor vašeg VPN dobavljača slomio je vaš upravitelj paketa, a popravak je odluka, a ne naredba. NO_PUBKEY, ili pritužba da repozitorij nema datoteku Release, znači da je apt odbio vjerovati tom izvoru, pa svaka kasnija radnja s paketima nastavlja ispisivati istu poruku upozorenja. Sam tunel vjerojatno je nedužan. Odgovorite na tri pitanja o tome želite li taj izvor i dalje, i ispravan popravak slijedi gotovo mehanički.
Najprije smjestite kvar u pravu kategoriju
Pogreška povjerenja imenuje datoteku izvora i ili ključ koji nedostaje ili odsutnu datoteku Release. Pogreška prijenosa izgleda drukčije: pogreške TLS certifikata, odbijena veza, isteci vremena ili proxy koji odbija CONNECT. Ta razlika odlučuje koji članak čitate, jer VPN koji presreće TLS ili blokira host dobavljača stvara pogreške prijenosa, a ne pogreške potpisa.
Pokrenite sudo apt update samostalno i pročitajte završetak, zanemarujući predmemorirane pogotke iznad. Redak koji je važan imenuje /etc/apt/sources.list.d/ i govori vam koju datoteku otvoriti.
Ako se kvar javlja nakon podizanja tunela, testirajte s ugašenim tunelom i s DNS-om koji razrješava sistemski resolver. Izvor koji radi bez VPN-a pitanje je usmjeravanja ili presretanja, i nikakvo upravljanje ključevima to neće popraviti.
Tri pitanja koja biraju put
Instalirate li još uvijek ili nadograđujete pakete iz ovog izvora? Ako je klijent u aktivnoj uporabi, popravite povjerenje. Ako ste klijent instalirali jednom i sada uvozite običan profil u NetworkManager, izvor je mrtav teret i uklanjanje je iskren popravak.
Drugo, objavljuje li dobavljač ključ i otisak koji možete provjeriti izvan kanala? Treće, tko upravlja ključevima na ovom hostu: distribucija ili vi? Izvor potpisan ključem koji ne možete provjeriti jest ovlast za ažuriranje koju ne biste smjeli dati.
Odgovor ne na prvo pitanje završava analizu. Odgovor da na sve tri točke upućuje na popravak pomoću signed-by, jedini raspored koji i radi i ostaje revidiran. Miješanje dvaju putova, zadržavanjem izvora i nasilnim proguravanjem, jedina je opcija koju vrijedi izričito isključiti.
Zašto trusted=yes izgleda kao popravak, a nije
Stranica priručnika za sources.list izravna je o tome. Postavljanje opcije Trusted na yes govori apt-u da prihvati izvor čak i kad ne prođe autentifikaciju, što isključuje apt-secure za taj repozitorij. Stranica to zadržava za lokalni kontekst, ako se uopće koristi.
To nije uža inačica povjerenja u dobavljača. Time se uklanja pitanje tko je potpisao indeks, pa svatko tko može odgovoriti za to ime hosta može vašem stroju dati pakete koji se instaliraju kao root.
Put popravka: nabavite ključ, zatim ga prikvačite
Nabavite ključ s mjesta koje dobavljač dokumentira i raspakirajte ga u privjesak ključeva kojim upravlja administrator, zatim usmjerite redak repozitorija na tu datoteku kako povjerenje ne bi moglo odlutati.
- Pročitajte redak koji ne uspijeva da biste dobili ID ključa i naziv datoteke izvora.
- Preuzmite dobavljačev ASCII-oklopljeni ključ i pokrenite
gpg --dearmoru/etc/apt/keyrings/vendor-name.gpg. - Dodajte
[signed-by=/etc/apt/keyrings/vendor-name.gpg]unosu u datoteci.listtog dobavljača. - Pokrenite
sudo apt updatei potvrdite da izvor dohvaća indeks umjesto da ponavlja upozorenje o potpisu.
Prednost dajte /usr/share/keyrings za ključeve koji dolaze s paketom i /etc/apt/keyrings za ključeve koje postavljate ručno. Ta podjela nije kozmetička: govori sljedećem administratoru koji će ključevi preživjeti nadogradnju paketa, a koji trebaju čovjeka.
Provjerite otisak prema dobavljačevoj objavljenoj vrijednosti prije nego mu povjerujete. ID ključa zalijepljen s foruma način je na koji stroj počne vjerovati ovlasti za ažuriranje koju nitko ne može imenovati.
Put uklanjanja i zašto se pogreška može vratiti
Pogledajte što je instalater stvarno zapisao, jer nekoliko datoteka može spominjati istog dobavljača i jedna je od njih obično zaostala kopija.
grep -r . /etc/apt/sources.list.d/
sudo rm /etc/apt/sources.list.d/vendor.listapt čita samo datoteke .list i .sources iz tog direktorija, pa se kopija .save ili .distUpgrade već zanemaruje; brisanje ipak sprječava kasnijeg čitatelja da je slučajno vrati. Uklanjanje izvora ne deinstalira ništa, a apt tada može opisati instalirani VPN paket kao lokalno instaliran ili više nedostupan, što je poruka o stanju paketa, a ne povratak pogreške povjerenja.
Ponavljajući slučaj su starije upute koje su instalirale ključeve pomoću apt-key u globalni prsten povjerenja. Taj je put zastario, a nadogradnja izdanja može ostaviti ključ ispuštenim ili jednostavno nekonzultiranim, i upravo zato se pogreška koja je godinu dana bila tiha pojavljuje u tjednu vaše nadogradnje. Provjerite /etc/apt/trusted.gpg.d/, zatim premjestite odluku o povjerenju u redak repozitorija gdje joj je mjesto. Ako dobavljač još ispisuje upute za apt-key, ipak upotrijebite signed-by; to je raspored koji priručnik dokumentira i onaj koji preživljava nadogradnju.