Acasă
» Cum să
»
Remediați erorile de semnătură APT prin repararea cheii de repozitoriu
Remediați erorile de semnătură APT prin repararea cheii de repozitoriu
Dacă APT raportează „Următoarele semnături nu au putut fi verificate”, identificați depozitul și codul de eroare specific în aceeași ieșire, apoi reparați cheia de semnare sau intrarea sursă de încredere a depozitului respectiv. Pentru un depozit terț, obțineți cheia curentă de la editorul software-ului și legați-o de sursa respectivă cu Signed-By; nu dezactivați verificările de semnături și nu adăugați o cheie necunoscută la nivel global.
Exemplu de ieșire a actualizării apt: o eroare de cheie lipsă denumește depozitul afectat și include un identificator NO_PUBKEY.
1. Găsiți repozitoriul și citiți eroarea exactă
Rulați o actualizare pentru a putea inspecta mesajul complet:
sudo apt update
Căutați adresa URL de lângă Err:și pentru un token, cum ar fi NO_PUBKEY, EXPKEYSIG, KEYEXPIRED, sau BADSIG. Adresa URL vă spune ce sursă a eșuat; token-ul restrânge motivul. APT verifică metadatele semnate ale depozitului înainte de a acorda încredere indexului pachetului, așa că o verificare eșuată a semnăturii este un semnal de securitate, mai degrabă decât un avertisment cosmetic. Instalările Ubuntu includ deja chei pentru arhivele Ubuntu implicite; configurarea manuală a cheii este necesară în mod normal numai pentru depozitele adăugate ulterior.
Găsiți definiția sursă căutând gazda numită în eroare. Înlocuiți gazda exemplu cu cea din terminalul dvs.:
Căutați în directorul sursă APT gazda exactă raportată de actualizarea eșuată.
Ubuntu 24.04 și versiunile ulterioare utilizează fișiere sursă deb822 care se termină în mod implicit; instalările mai vechi au adesea fișiere .sourcespe o singură linie . Verificați adresa URL a depozitului, suita sau numele de cod Ubuntu și orice intrare existentă. Dacă sursa indică o versiune pe care furnizorul nu o mai acceptă, utilizați instrucțiunile furnizorului pentru versiunea dvs. de Ubuntu sau dezactivați sursa respectivă. O cheie nu poate remedia o cale de depozit învechită sau incorectă..listSigned-By
2. Reparați o cheie terță parte lipsă sau rotită
Pentru NO_PUBKEY, confirmați mai întâi că depozitul este unul pe care l-ați instalat intenționat. Deschideți documentația de instalare curentă a editorului și obțineți adresa URL a cheii de semnare și amprenta completă din sursa respectivă. Comparați amprenta cu o referință a furnizorului publicată separat, atunci când este disponibilă. Nu preluați o cheie de la un server de chei aleatoriu doar pentru că ID-ul său scurt corespunde erorii.
Pentru un furnizor care publică o cheie blindată ASCII .asc, instalați-o ca un keyring APT dedicat. Înlocuiți adresa URL exemplu cu adresa URL exactă documentată de editorul respectiv:
Fișierul .gpgtrebuie să poată fi citit de utilizatorul APT fără privilegii de descărcare. Dacă editorul furnizează un .gpgkeyring binar, urmați instrucțiunile acestuia în loc să îl dearmorizați din nou. Ubuntu recomandă ca cheile terțe să se afle într-un keyring separat și să fie referențiate de acel depozit, limitând sursa care poate utiliza cheia.
O setare „Semnat de” specifică sursei menține depozitul legat de propriul inel de chei.
Editați definiția sursei existente în loc să adăugați o intrare duplicată. Pentru un fișier deb822, cum ar fi /etc/apt/sources.list.d/vendor.sources, utilizați URI-ul, valorile suitei și componentelor reale ale furnizorului, apoi adăugați calea keyring-ului:
Types: deb
URIs: https://packages.example.org/ubuntu
Suites: YOUR_UBUNTU_CODENAME
Components: main
Signed-By: /etc/apt/keyrings/vendor-archive.gpg
Dacă intrarea existentă se află într-un .listfișier cu o singură linie, sintaxa echivalentă este deb [signed-by=/etc/apt/keyrings/vendor-archive.gpg] https://packages.example.org/ubuntu YOUR_UBUNTU_CODENAME main. Păstrați suita documentată și componentele depozitului; valorile exemplu sunt substituenți. Evitați apt-key add: este depreciată, iar o cheie globală de încredere poate acorda unei chei terțe o autoritate mai largă decât cea intenționată.
Dacă mesajul spune EXPKEYSIGsau KEYEXPIRED, este posibil ca cheia de semnare să fi expirat sau ca furnizorul să o fi rotit. Descărcați și verificați cheia de înlocuire folosind instrucțiunile actuale ale furnizorului, apoi actualizați cheia sursă. Nu extindeți încrederea vechii chei ignorând expirarea.
3. Verificați ceasul, arhiva Ubuntu și problemele legate de oglindă
Dacă depozitul este o arhivă oficială Ubuntu, nu importați o cheie terță. Verificați dacă ceasul sistemului este corect cu timedatectl statusși confirmați că sursa utilizează o adresă URL validă a arhivei Ubuntu și numele de cod pentru versiunea instalată. Pachetul ubuntu-keyringfurnizează chei de semnare a arhivei Ubuntu; dacă gestionarea pachetelor funcționează în continuare printr-o sursă Ubuntu de încredere, reîmprospătați pachetul respectiv cu:
sudo apt install --reinstall ubuntu-keyring
Un BADSIGmesaj indică faptul că semnătura nu se potrivește cu metadatele primite de APT. Repetarea importului unei chei este de obicei un răspuns greșit. Verificați dacă ceasul sistemului este greșit, o oglindă veche sau inconsistentă, un proxy de caching sau o problemă de publicare la nivelul depozitului; încercați din nou după corectarea cauzei. Dacă doar o sursă terță eșuează și nu aveți nevoie de ea, dezactivați intrarea specifică .sourcessau .listîn timp ce contactați administratorul acesteia. Mențineți activată verificarea de securitate.
4. Verificați remedierea
După corectarea sursei sau a inelului de chei, rulați din nou actualizarea apt și confirmați că nu persistă nicio eroare de semnătură.
Executați sudo apt updatedin nou. Repararea este completă atunci când depozitul afectat este preluat fără o avertizare de semnătură și APT ajunge la Reading package lists... Done. O actualizare reușită nu certifică faptul că un editor terț este sigur; aceasta confirmă faptul că semnătura metadatelor se potrivește cu o cheie în care ați ales să aveți încredere. Dacă verificarea eșuează în continuare, verificați din nou adresa URL a depozitului, numele de cod, amprenta cheii, permisiunile keyring-ului și token-ul de eroare exact înainte de a face o altă modificare.