Posodobitev apt spodleti z NO_PUBKEY po dodajanju skladišča VPN
NO_PUBKEY in manjkajoča datoteka Release sta napaki zaupanja, ne omrežni okvari. Odločite se, ali boste ključ ponudnika pripeli s signed-by ali odstranili vir.
Vir apt vašega ponudnika VPN je pokvaril upravitelja paketov, in popravek je odločitev, ne ukaz. NO_PUBKEY, ali pritožba, da skladišče nima datoteke Release, pomeni, da je apt zavrnil zaupanje temu viru, zato vsaka poznejša operacija s paketi še naprej izpisuje isto opozorilo. Sam tunel je verjetno nedolžen. Odgovorite na tri vprašanja, ali ta vir še želite, in pravilen popravek sledi skoraj mehansko.
Najprej uvrstite napako v pravo kategorijo
Napaka zaupanja navede datoteko vira in bodisi manjkajoči ključ bodisi odsotno datoteko Release. Napaka prenosa je videti drugače: napake potrdila TLS, zavrnjena povezava, prekoračitve časa ali proxy, ki zavrača CONNECT. Ta razlika odloči, kateri članek berete, ker VPN, ki prestreza TLS ali blokira gostitelja ponudnika, ustvarja napake prenosa, ne napake podpisa.
Zaženite sudo apt update samo in preberite konec, pri čemer vrstice iz predpomnilnika zgoraj prezrite. Vrstica, ki je pomembna, navede /etc/apt/sources.list.d/ in vam pove, katero datoteko odpreti.
Če se napaka pojavi po dvigu tunela, preizkusite s spuščenim tunelom in z DNS, razrešenim s sistemskim razreševalnikom. Vir, ki deluje brez VPN, je vprašanje usmerjanja ali prestrezanja, in nobeno upravljanje ključev tega ne odpravi.
Tri vprašanja, ki izberejo pot
Ali še vedno nameščate ali posodabljate pakete iz tega vira? Če je odjemalec v aktivni uporabi, popravite zaupanje. Če ste odjemalca namestili enkrat in zdaj v NetworkManager uvažate običajen profil, je vir mrtva teža in odstranitev je pošten popravek.
Drugič, ali ponudnik objavlja ključ in prstni odtis, ki ju lahko preverite zunaj kanala? Tretjič, kdo upravlja ključe na tem gostitelju: distribucija ali vi? Vir, podpisan s ključem, ki ga ne morete preveriti, je pooblastilo za posodobitve, ki ga ne bi smeli podeliti.
Ne na prvo vprašanje analizo zaključi. Da na vse tri točke vodi k popravku s signed-by, edini ureditvi, ki hkrati deluje in ostane revizijsko sledljiva. Mešanje obeh poti, z obdržanjem vira in prisilnim prebitjem, je edina možnost, ki se jo splača izrecno izključiti.
Zakaj trusted=yes izgleda kot popravek in ni
Stran priročnika za sources.list je glede tega neposredna. Nastavitev možnosti Trusted na yes pove aptu, naj vir sprejme tudi, ko ne prestane preverjanja pristnosti, kar izklopi apt-secure za to skladišče. Stran to pridrži za lokalni kontekst, če se sploh uporablja.
To ni ožja različica zaupanja ponudniku. Odstrani vprašanje, kdo je podpisal kazalo, zato lahko vsak, ki lahko odgovarja za to ime gostitelja, vašemu stroju preda pakete, ki se namestijo kot root.
Pot popravka: pridobite ključ in ga nato pripnite
Pridobite ključ z mesta, ki ga ponudnik dokumentira, in ga razpakirajte v obesek za ključe, ki ga upravlja skrbnik, nato usmerite vrstico skladišča na to datoteko, da zaupanje ne more zdrsniti.
- Preberite vrstico, ki spodleti, da dobite ID ključa in ime datoteke vira.
- Prenesite ponudnikov ključ, obdan z ASCII, in zaženite
gpg --dearmorv/etc/apt/keyrings/vendor-name.gpg. - Dodajte
[signed-by=/etc/apt/keyrings/vendor-name.gpg]vnosu v datoteki.listtega ponudnika. - Zaženite
sudo apt updatein potrdite, da vir pridobi kazalo, namesto da ponavlja opozorilo o podpisu.
Prednost dajte /usr/share/keyrings za ključe, ki pridejo s paketom, in /etc/apt/keyrings za ključe, ki jih postavite ročno. Ta delitev ni kozmetična: naslednjemu skrbniku pove, kateri ključi bodo preživeli posodobitev paketa in kateri potrebujejo človeka.
Preverite prstni odtis glede na ponudnikovo objavljeno vrednost, preden mu zaupate. ID ključa, prilepljen s forumske objave, je pot, po kateri stroj začne zaupati pooblastilu za posodobitve, ki ga nihče ne more imenovati.
Pot odstranitve in zakaj se napaka lahko vrne
Poglejte, kaj je namestitveni program v resnici zapisal, ker lahko več datotek omenja istega ponudnika in ena od njih je običajno preostala kopija.
grep -r . /etc/apt/sources.list.d/
sudo rm /etc/apt/sources.list.d/vendor.listapt iz te mape bere le datoteke .list in .sources, zato je kopija .save ali .distUpgrade že prezrta; če jo vseeno izbrišete, preprečite poznejšemu bralcu, da bi jo po nesreči obnovil. Odstranitev vira ne odstrani nobene namestitve, in apt lahko nato nameščeni paket VPN opiše kot krajevno nameščen ali ni več na voljo, kar je sporočilo o stanju paketa in ne vrnitev napake zaupanja.
Ponavljajoči se primer so starejša navodila, ki so ključe namestila s apt-key v globalni obroč zaupanja. Ta pot je zastarela, in posodobitev izdaje lahko ključ pusti izpuščen ali preprosto neposvetovan, in prav zato se napaka, ki je bila leto tiho, pojavi v tednu, ko posodabljate. Preverite /etc/apt/trusted.gpg.d/, nato premaknite odločitev o zaupanju v vrstico skladišča, kamor spada. Če ponudnik še vedno tiska navodila za apt-key, vseeno uporabite signed-by; to je ureditev, ki jo priročnik dokumentira, in tista, ki preživi posodobitev.