apt ažuriranje ne uspeva sa NO_PUBKEY nakon dodavanja VPN repozitorijuma
NO_PUBKEY i nedostajuća Release datoteka su greške poverenja, a ne mrežni kvarovi. Odlučite da li ćete prikvačiti ključ dobavljača pomoću signed-by ili ukloniti izvor.
apt izvor vašeg VPN dobavljača pokvario je vaš upravljač paketa, a popravka je odluka, a ne naredba. NO_PUBKEY, ili pritužba da repozitorijum nema Release datoteku, znači da je apt odbio da veruje tom izvoru, pa svaka kasnija operacija sa paketima nastavlja da ispisuje isto upozorenje. Sam tunel je verovatno nedužan. Odgovorite na tri pitanja o tome da li vam je taj izvor i dalje potreban, i ispravna popravka sledi gotovo mehanički.
Najpre smestite kvar u pravu kategoriju
Greška poverenja imenuje datoteku izvora i ili ključ koji nedostaje ili odsutnu Release datoteku. Greška prenosa izgleda drugačije: greške TLS sertifikata, 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 proizvodi greške prenosa, a ne greške potpisa.
Pokrenite sudo apt update samostalno i pročitajte kraj, zanemarujući keširane pogotke iznad. Linija koja je važna imenuje /etc/apt/sources.list.d/ i govori vam koju datoteku da otvorite.
Ako se kvar javlja nakon podizanja tunela, testirajte sa isključenim tunelom i sa DNS-om koji razrešava sistemski resolver. Izvor koji radi bez VPN-a je pitanje usmeravanja ili presretanja, i nikakvo upravljanje ključevima to neće popraviti.
Tri pitanja koja biraju put
Da li još uvek instalirate ili nadograđujete pakete iz ovog izvora? Ako je klijent u aktivnoj upotrebi, popravite poverenje. Ako ste klijent instalirali jednom i sada uvozite običan profil u NetworkManager, izvor je mrtav teret i uklanjanje je iskrena popravka.
Drugo, da li dobavljač objavljuje ključ i otisak koji možete proveriti izvan kanala? Treće, ko upravlja ključevima na ovom hostu: distribucija ili vi? Izvor potpisan ključem koji ne možete proveriti jeste ovlašćenje za ažuriranje koje ne biste trebali dati.
Odgovor ne na prvo pitanje završava analizu. Odgovor da na sve tri tačke upućuje na popravku pomoću signed-by, jedini raspored koji i radi i ostaje revidiran. Mešanje dva puta, zadržavanjem izvora i nasilnim proguravanjem, jedina je opcija koju vredi izričito isključiti.
Zašto trusted=yes izgleda kao popravka, a nije
Stranica priručnika za sources.list je izričita o tome. Postavljanje opcije Trusted na yes kaže apt-u da prihvati izvor čak i kada ne prođe autentifikaciju, što isključuje apt-secure za taj repozitorijum. Stranica to zadržava za lokalni kontekst, ako se uopšte koristi.
To nije uža verzija poverenja u dobavljača. Time se uklanja pitanje ko je potpisao indeks, pa svako ko može da odgovori za to ime hosta može vašem računaru dati pakete koji se instaliraju kao root.
Put popravke: nabavite ključ, zatim ga prikvačite
Nabavite ključ sa mesta koje dobavljač dokumentuje i raspakujte ga u privjesak ključeva kojim upravlja administrator, zatim usmerite liniju repozitorijuma na tu datoteku kako poverenje ne bi moglo da odluta.
- Pročitajte liniju koja ne uspeva 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 dohvata indeks umesto da ponavlja upozorenje o potpisu.
Dajte prednost /usr/share/keyrings za ključeve koji dolaze sa paketom i /etc/apt/keyrings za ključeve koje postavljate ručno. Ta podela nije kozmetička: govori sledećem administratoru koji će ključevi preživeti nadogradnju paketa, a koji traže čoveka.
Proverite otisak prema dobavljačevoj objavljenoj vrednosti pre nego što mu poverujete. ID ključa zalepljen sa foruma je način na koji računar počne da veruje ovlašćenju za ažuriranje koje niko ne može da imenuje.
Put uklanjanja i zašto se greška može vratiti
Pogledajte šta je instalater zaista zapisao, jer nekoliko datoteka može da spomene istog dobavljača i jedna od njih je 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 direktorijuma, pa se kopija .save ili .distUpgrade već zanemaruje; brisanje ipak sprečava kasnijeg čitaoca da je slučajno vrati. Uklanjanje izvora ne deinstalira ništa, a apt tada može da opiše instalirani VPN paket kao lokalno instaliran ili više nedostupan, što je poruka o stanju paketa, a ne povratak greške poverenja.
Slučaj koji se ponavlja su starija uputstva koja su instalirala ključeve pomoću apt-key u globalni prsten poverenja. Taj put je zastareo, a nadogradnja izdanja može da ostavi ključ ispuštenim ili jednostavno nekonsultovanim, i upravo zato se greška koja je godinu dana bila tiha pojavljuje u nedelji vaše nadogradnje. Proverite /etc/apt/trusted.gpg.d/, zatim premestite odluku o poverenju u liniju repozitorijuma gde joj je mesto. Ako dobavljač još ispisuje uputstva za apt-key, ipak upotrebite signed-by; to je raspored koji priručnik dokumentuje i onaj koji preživljava nadogradnju.