Aktualizácia apt zlyháva s NO_PUBKEY po pridaní úložiska VPN
NO_PUBKEY a chýbajúci súbor Release sú zlyhania dôvery, nie sieťové poruchy. Rozhodnite sa, či kľúč dodavateľa pripnete cez signed-by, alebo zdroj odstránite.
Zdroj apt od vášho dodavateľa VPN pokazil správcu balíkov a oprava je rozhodnutie, nie príkaz. NO_PUBKEY, alebo sťažnosť, že úložisko nemá súbor Release, znamená, že apt odmietol dôverovať tomu zdroju, takže každá ďalšia operácia s balíkmi naďalej tlačí to isté varovanie. Tunel sám je pravdepodobne nevinný. Odpovedzte na tri otázky, či ten zdroj ešte chcete, a správna oprava príde takmer mechanicky.
Najprv zaraďte zlyhanie do správnej kategórie
Zlyhanie dôvery pomenuje súbor zdroja a buď chýbajúci kľúč, alebo chýbajúci súbor Release. Zlyhanie prenosu vyzerá inak: chyby certifikátu TLS, odmietnuté spojenie, vypršanie časového limitu alebo proxy, ktorá odmieta CONNECT. Tento rozdiel rozhoduje, ktorý článok čítate, pretože VPN, ktorá zachytáva TLS alebo blokuje hostiteľa dodavateľa, vytvára chyby prenosu, nie chyby podpisu.
Spustite sudo apt update samostatne a prečítajte koniec, pričom riadky z medzipamäte vyššie ignorujte. Riadok, na ktorom záleží, uvádza /etc/apt/sources.list.d/ a hovorí vám, ktorý súbor otvoriť.
Ak zlyhanie nasleduje po zdvihnutí tunela, otestujte s vypnutým tunelom a s DNS rozkladaným systémovým resolverom. Zdroj, ktorý funguje bez VPN, je otázka smerovania alebo zachytávania a žiadne hospodárenie s kľúčmi to nespraví.
Tri otázky, ktoré vyberú cestu
Inštalujete alebo aktualizujete z tohto zdroja balíky aj naďalej? Ak je klient aktívne používaný, opravte dôveru. Ak ste klienta nainštalovali raz a teraz do NetworkManageru importujete obyčajný profil, je zdroj mŕtva váha a odstránenie je poctivá oprava.
Po druhé, zverejňuje dodavateľ kľúč a odtlačok, ktoré môžete overiť mimo pásma? Po tretie, kto na tomto hostiteľovi spravuje kľúče: distribúcia, alebo vy? Zdroj podpísaný kľúčom, ktorý nemôžete overiť, je oprávnenie na aktualizácie, ktoré by ste nemali udeliť.
Odpoveď nie na prvú otázku analýzu ukončí. Odpoveď áno na všetky tri body ukazuje na opravu cez signed-by, čo je jediné usporiadanie, ktoré zároveň funguje a zostáva auditovateľné. Miešať obe cesty, teda zdroj ponechať a pretlačiť ho silou, je jediná možnosť, ktorú stojí za to výslovne vylúčiť.
Prečo trusted=yes vyzerá ako oprava a nie je
Stránka manuálu k sources.list je o tom priama. Nastavenie voľby Trusted na yes povie aptu, aby zdroj prijal, aj keď neprejde autentizáciou, čo vypne apt-secure pre toto úložisko. Stránka to vyhradzuje pre miestny kontext, ak sa vôbec používa.
To nie je užšia verzia dôvery v dodavateľa. Odstraňuje otázku, kto index podpísal, takže ktokoľvek, kto dokáže odpovedať za toto meno hostiteľa, môže vášmu stroju odovzdať balíky, ktoré sa nainštalujú ako root.
Cesta opravy: získajte kľúč a potom ho pripnite
Získajte kľúč z miesta, ktoré dodavateľ dokumentuje, a rozbaľte ho do kľúčenky spravovanej správcom, potom nasmerujte riadok úložiska na tento súbor, aby dôvera nemohla odplávať.
- Prečítajte zlyhávajúci riadok, aby ste získali ID kľúča a názov súboru zdroja.
- Stiahnite dodavateľov kľúč obalený ASCII a spustite
gpg --dearmordo/etc/apt/keyrings/vendor-name.gpg. - Pridajte
[signed-by=/etc/apt/keyrings/vendor-name.gpg]k záznamu v súbore.listtohto dodavateľa. - Spustite
sudo apt updatea potvrďte, že zdroj sťahuje index, namiesto toho aby opakoval varovanie o podpise.
Uprednostnite /usr/share/keyrings pre kľúče, ktoré prichádzajú s balíkom, a /etc/apt/keyrings pre kľúče, ktoré umiestňujete ručne. Rozdelenie nie je kozmetické: hovorí ďalšiemu správcovi, ktoré kľúče prežijú aktualizáciu balíka a ktoré potrebujú človeka.
Overte odtlačok proti zverejnenej hodnote dodavateľa, skôr než mu uveríte. ID kľúča vložené z príspevku na fóre je spôsob, akým stroj začne dôverovať oprávneniu na aktualizácie, ktoré nikto nedokáže pomenovať.
Cesta odstránenia a prečo sa chyba môže vrátiť
Pozrite sa, čo inštalátor skutočne zapísal, pretože niekoľko súborov môže uvádzať toho istého dodavateľa a jeden z nich je zvyčajne zvyšná kópia.
grep -r . /etc/apt/sources.list.d/
sudo rm /etc/apt/sources.list.d/vendor.listapt číta z tohto adresára len súbory .list a .sources, takže kópia .save alebo .distUpgrade sa už ignoruje; zmazať ju aj tak zabráni neskoršiemu čitateľovi, aby ju omylom obnovil. Odstránenie zdroja nič neodinštaluje a apt potom môže nainštalovaný balík VPN opísať ako miestne nainštalovaný alebo už nedostupný, čo je správa o stave balíka, nie návrat chyby dôvery.
Opakujúcim sa prípadom sú staršie návody, ktoré inštalovali kľúče pomocou apt-key do globálneho prstenca dôvery. Táto cesta je zastaraná a aktualizácia vydania môže kľúč nechať vypadnutý alebo jednoducho nekonzultovaný, a práve preto sa chyba, ktorá bola rok ticho, objaví v týždni, keď aktualizujete. Skontrolujte /etc/apt/trusted.gpg.d/, potom presuňte rozhodnutie o dôvere do riadku úložiska, kam patrí. Ak dodavateľ stále tlačí pokyny k apt-key, použite signed-by aj tak; je to usporiadanie, ktoré manuál dokumentuje, a to, ktoré prežije aktualizáciu.