Jak naprawić błąd GPG „NO_PUBKEY” w systemie Ubuntu

Błąd NO_PUBKEY oznacza, że ​​APT znalazł repozytorium, ale nie może zweryfikować metadanych podpisanego pakietu, ponieważ brakuje publicznego klucza podpisu tego repozytorium. Zidentyfikuj źródło, uzyskaj klucz od wydawcy, zweryfikuj pełny odcisk palca i połącz go tylko z tym repozytorium za pomocą Signed-By. Następnie odśwież APT. Nie pomijaj sprawdzania podpisu, aby ukryć błąd.

Kontrole APT chronią metadane pakietów i pliki do pobrania przed manipulacją. Ubuntu zaleca ograniczenie zakresu kluczy zewnętrznych do ich własnego źródła. Zapoznaj się z wytycznymi Canonical dotyczącymi repozytoriów zewnętrznych i dokumentacją dotyczącą integralności archiwów .

1. Zidentyfikuj repozytorium, które spowodowało błąd

Otwórz terminal i uruchom:

sudo apt update

Zwróć uwagę na adres URL repozytorium obok NO_PUBKEY. APT może wyświetlić krótki identyfikator klucza, taki jak ABCD1234EF567890. Pomaga to zidentyfikować brakujący klucz, ale nie dowodzi, kto jest jego właścicielem. Przed zmianą ustawień zaufania sprawdź, które źródło oprogramowania spowodowało błąd.

Terminal Ubuntu podświetlający błąd NO_PUBKEY dla zewnętrznego repozytorium APT
Podświetlony wiersz identyfikuje repozytorium, którego klucza podpisu APT nie może zweryfikować. Przykładami są adres URL i identyfikator klucza.

2. Pobierz i zweryfikuj klucz wydawcy

Skorzystaj z oficjalnej strony instalacyjnej właściciela repozytorium lub z lokalizacji pobierania klucza. W przypadku Launchpad PPA potwierdź jego właściciela i zarchiwizuj go w Launchpad. Dokumenty Ubuntu dotyczące dodawania PPA za pomocą add-apt-repository, który konfiguruje jego klucz:

sudo add-apt-repository ppa:OWNER/ARCHIVE

Zastąp OWNER/ARCHIVEdokładnym kodem PPA z oficjalnej strony. W przypadku repozytorium dostawcy, pobierz klucz tylko z instrukcji dostawcy. W tym przykładzie użyto adresu URL zastępczego; zastąp go opublikowanym adresem URL:

curl -fsSLo /tmp/vendor-archive-keyring.asc https://repo.example/ubuntu/vendor-archive-keyring.asc
gpg --show-keys --with-fingerprint /tmp/vendor-archive-keyring.asc

Porównaj pełny odcisk palca z tym, który dostawca publikuje oficjalnym kanałem. Nie kontynuuj, jeśli różni się lub nie można go zweryfikować.

Strona przeglądarki pokazująca możliwość pobrania klucza podpisu repozytorium wydawcy oprogramowania
Aby znaleźć klucz i jego odcisk palca, postępuj zgodnie z instrukcjami wydawcy.

3. Przechowuj klucz w osobnym breloku

W przypadku klucza zabezpieczonego kodem ASCII .ascutwórz katalog pęku kluczy, przekonwertuj klucz i zezwól narzędziu APT na jego odczytanie:

sudo install -d -m 0755 /etc/apt/keyrings
sudo gpg --dearmor --yes --output /etc/apt/keyrings/vendor-archive-keyring.gpg /tmp/vendor-archive-keyring.asc
sudo chmod 0644 /etc/apt/keyrings/vendor-archive-keyring.gpg

Jeśli wydawca udostępnia .gpgklucz binarny, zapisz go /etc/apt/keyringsi ustaw jego uprawnienia na 0644; nie usuwaj go. Nazwij plik zgodnie z nazwą wydawcy, aby móc go później zidentyfikować.

4. Połącz klucz z tym repozytorium

Edytuj istniejący plik źródłowy repozytorium, zazwyczaj w /etc/apt/sources.list.d/. Zachowaj URI, pakiet Ubuntu i komponenty od wydawcy. Zastąp poniższe symbole zastępcze i nie twórz duplikatu źródła.

W .sourcespliku deb822 dodaj Signed-Bypole:

Types: deb
URIs: https://repo.example/ubuntu
Suites: YOUR_UBUNTU_CODENAME
Components: main
Signed-By: /etc/apt/keyrings/vendor-archive-keyring.gpg

W przypadku starszego .listpliku dodaj opcję do istniejącego debwiersza:

deb [signed-by=/etc/apt/keyrings/vendor-archive-keyring.gpg] https://repo.example/ubuntu YOUR_UBUNTU_CODENAME main

Użyj formatu, który już znajduje się w tym źródle. Podręcznik Ubuntusources.list wyjaśnia Signed-Byobsługiwane formaty.

Edytor tekstu Ubuntu pokazujący plik źródłowy deb822 z dyrektywą Signed-By wskazującą na pęk kluczy specyficzny dla repozytorium
Wpis źródłowy wskazuje na jeden pęk kluczy w /etc/apt/keyrings.

5. Odśwież APT i zweryfikuj

Zapisz plik źródłowy i uruchom:

sudo apt update

Aktualizacja powinna zakończyć się bez NO_PUBKEYostrzeżenia tego repozytorium. Następnie możesz normalnie instalować lub aktualizować pakiety. To polecenie odświeża metadane pakietu; nie aktualizuje zainstalowanych pakietów.

Terminal Ubuntu pokazuje, że aktualizacja sudo apt kończy się bez błędu NO_PUBKEY
Odświeżenie listy pakietów potwierdza, że ​​APT może zweryfikować skonfigurowane repozytorium.

Jeśli błąd nadal występuje

  • Niezgodność odcisku palca: klucz może być nieaktualny lub pochodzić z innego repozytorium. Uzyskaj aktualny klucz od wydawcy.
  • Klucz nie został znaleziony: sprawdź, czy ścieżka źródłowa Signed-Bydokładnie odpowiada plikowi zestawu kluczy i czy plik jest czytelny.
  • Brak pliku Release lub błąd 404: repozytorium może nie obsługiwać Twojej nazwy kodowej Ubuntu. Postępuj zgodnie ze wskazówkami wydawcy dotyczącymi zgodności lub wyłącz kod źródłowy; nie zakładaj innego pakietu.
  • Oficjalne archiwum Ubuntu: sprawdź, czy źródło wskazuje na oficjalne archiwum Ubuntu i czy ubuntu-keyringjest ono nienaruszone. Nie importuj nieoficjalnego klucza zastępczego.

W systemie Ubuntu Desktop, jeśli nie korzystasz już ze źródła zewnętrznego, otwórz „Oprogramowanie i aktualizacje” , wyłącz je w sekcji „Inne oprogramowanie” i ponownie załaduj informacje o pakiecie. Etykiety różnią się w zależności od wersji. Starszy, globalny przepływ pracy importu uwierzytelniania nie zastępuje weryfikacji bieżącego klucza wydawcy i korzystania z Signed-By.

Pozostaw włączoną kontrolę podpisów

Nie używaj ustawień trusted=yes, --allow-unauthenticated, ani insecure-repository jako obejścia. Jeśli wydawca nie może potwierdzić klucza lub nie utrzymuje już repozytorium, wyłącz je i użyj obsługiwanego źródła. Zapoznaj się z podręcznikiem Ubuntu APT archive-authentication .

Zostaw komentarz

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Dowiedz się, jak odzyskać utracone partycje i pliki za pomocą TestDisk i PhotoRec. Zabezpiecz dysk źródłowy, przeskanuj go bezpiecznie i zapisz odzyskane dane na innym dysku.

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Skanuj kody QR w systemie Linux za pomocą CoBang, używając kamery internetowej lub pliku obrazu. Zobacz opcje instalacji, kroki konfiguracji i poprawki dotyczące dostępu do kamery Flatpak.

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Zmień ustawienia kamery internetowej w systemie Linux za pomocą narzędzia Cameractrls: dostosuj ekspozycję, kolor, redukcję migotania i inne obsługiwane elementy sterujące, a następnie sprawdź zgodne tryby wideo.

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Zainstaluj PhpStorm na Linuksie za pomocą JetBrains Toolbox lub samodzielnego archiwum tar.gz, a także opcji Snap i Arch AUR. Java jest już dołączona.

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Usuń tło zdjęcia w systemie Linux za pomocą programu GIMP: narysuj obiekt, usuń wybrane tło, zachowaj przezroczystość i wyeksportuj plik PNG, który można ponownie wykorzystać.

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Utwórz obraz ISO płyty CD-ROM w systemie Linux za pomocą GNOME Disks lub dd. Zidentyfikuj napęd optyczny, monitoruj kopiowanie, zweryfikuj obraz i dowiedz się, kiedy uszkodzona płyta lub płyta audio wymaga użycia innego narzędzia.

Jak skonfigurować dwa panele w środowisku XFCE 4

Jak skonfigurować dwa panele w środowisku XFCE 4

Utwórz oddzielny panel XFCE 4 dla każdego wyświetlacza, przypisz drugi panel do odpowiedniego wyjścia, określ jego położenie i rozmiar, a następnie dodaj potrzebne elementy uruchamiające i statusu.

Jak zainstalować Cisco Packet Tracer w systemie Linux

Jak zainstalować Cisco Packet Tracer w systemie Linux

Pobierz Cisco Packet Tracer 9.0.1 dla systemu Ubuntu 64-bit, zainstaluj pakiet DEB za pomocą APT, zaakceptuj licencję w terminalu i zaloguj się, aby rozpocząć laboratorium.

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo z oficjalnej strony. Porównaj pakiety dla systemów Windows, macOS i Linux, zainstaluj pliki danych i rozpocznij swój pierwszy lot.

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler mapuje klipy MP3 na klawisze klawiatury i umożliwia zapętlanie dźwięku. Dowiedz się, co robi ten starszy, darmowy program, gdzie kończą się jego stare funkcje i co sprawdzić przed pobraniem.