저장소 키를 복구하여 APT 서명 오류를 해결하세요

APT에서 "다음 서명을 확인할 수 없습니다."라는 메시지가 표시되면 동일한 출력에서 ​​저장소와 특정 오류 코드를 확인한 다음 해당 저장소의 신뢰할 수 있는 서명 키 또는 소스 항목을 수정하십시오. 타사 저장소의 경우 소프트웨어 게시자로부터 현재 키를 받아 해당 소스에 연결하십시오 Signed-By. 서명 검사를 비활성화하거나 알 수 없는 키를 전역적으로 추가하지 마십시오.

Ubuntu 터미널 출력에서 ​​apt 업데이트와 packages.example.org 저장소에 대한 공개 키 누락 오류가 표시됩니다.
apt 업데이트 출력 예시: 키 누락 오류는 영향을 받는 저장소의 이름을 표시하고 NO_PUBKEY 식별자를 포함합니다.

1. 저장소를 찾고 정확한 오류 메시지를 확인하세요.

전체 메시지를 확인하려면 업데이트를 실행하세요.

sudo apt update

옆에 있는 URL 과 , , , 또는 Err:와 같은 토큰을 찾아보세요 . URL은 어떤 소스에서 오류가 발생했는지 알려주고, 토큰은 오류의 원인을 좁혀줍니다. APT는 패키지 인덱스를 신뢰하기 전에 서명된 저장소 메타데이터를 검증하므로, 서명 검사 실패는 단순한 경고가 아니라 보안상의 문제입니다. Ubuntu 설치에는 기본 Ubuntu 아카이브용 키가 이미 포함되어 있으므로, 일반적으로 나중에 추가된 저장소에 대해서만 수동 키 설정이 필요합니다.NO_PUBKEYEXPKEYSIGKEYEXPIREDBADSIG

오류 메시지에 언급된 호스트 이름을 검색하여 소스 정의를 찾으세요. 예시 호스트를 터미널에서 확인한 호스트 이름으로 바꾸세요.

Ubuntu 터미널에서 apt sources.list.d 아래의 파일을 검색하여 저장소 호스트를 찾습니다.
APT 소스 디렉터리에서 업데이트 실패 시 보고된 정확한 호스트를 검색하십시오.
grep -R "packages.example.org" /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null

Ubuntu 24.04 이상 버전은 .sources기본적으로 deb822 소스 파일을 사용하며, 이전 버전에서는 종종 한 줄짜리 .list파일을 사용합니다. 저장소 URL, 스위트 또는 Ubuntu 코드명, 그리고 기존 Signed-By항목을 확인하십시오. 소스가 공급업체에서 더 이상 지원하지 않는 릴리스를 가리키는 경우, 해당 공급업체의 Ubuntu 릴리스 관련 지침을 따르거나 해당 소스를 비활성화하십시오. 키로는 더 이상 사용되지 않거나 잘못된 저장소 경로를 수정할 수 없습니다.

2. 분실되었거나 회전된 타사 키 복구

먼저 NO_PUBKEY, 해당 저장소가 사용자가 의도적으로 설치한 것인지 확인하십시오. 게시자의 최신 설치 문서를 열고 서명 키 URL과 전체 지문을 확인하십시오. 가능한 경우, 별도로 게시된 공급업체 참조 지문과 비교하십시오. 짧은 ID가 오류와 일치한다는 이유만으로 임의의 키 서버에서 키를 가져오지 마십시오.

ASCII로 암호화된 키를 제공하는 업체라면 .asc해당 키를 전용 APT 키링으로 설치하십시오. 예시 URL을 해당 업체에서 제공하는 정확한 URL로 바꾸십시오.

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://vendor.example/path/repo-signing-key.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/vendor-archive.gpg
sudo chmod 0644 /etc/apt/keyrings/vendor-archive.gpg

해당 .gpg파일은 APT의 권한이 없는 다운로드 사용자가 읽을 수 있어야 합니다. 게시자가 바이너리 .gpg키링을 제공하는 경우, 다시 삭제하는 대신 게시자의 지침을 따르십시오. Ubuntu는 타사 키를 별도의 키링에 저장하고 해당 저장소에서 참조하도록 하여 키를 사용할 수 있는 소스를 제한하는 것을 권장합니다.

전용 APT 키링과 signed-by를 사용하는 저장소 소스 항목을 보여주는 Ubuntu 터미널 화면입니다.
소스별 Signed-By 설정은 저장소를 자체 키링에 연결 상태로 유지합니다.

중복 항목을 추가하는 대신 기존 소스 정의를 편집하십시오. 예를 들어 deb822 파일의 경우 /etc/apt/sources.list.d/vendor.sources, 공급업체의 실제 URI, 스위트 및 구성 요소 값을 사용한 다음 키링 경로를 추가하십시오.

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

기존 항목이 한 줄짜리 .list파일에 있는 경우, 해당 구문은 다음과 같습니다 deb [signed-by=/etc/apt/keyrings/vendor-archive.gpg] https://packages.example.org/ubuntu YOUR_UBUNTU_CODENAME main. 저장소의 문서화된 구성 요소 및 세트를 유지하십시오. 예시 값은 자리 표시자입니다. 사용을 피하십시오 apt-key add. 이 구문은 더 이상 사용되지 않으며, 전역 신뢰 키는 제3자 키에 의도한 것보다 더 광범위한 권한을 부여할 수 있습니다.

메시지에 EXPKEYSIG또는 가 표시되면 KEYEXPIRED서명 키가 만료되었거나 공급업체에서 키를 교체했을 수 있습니다. 공급업체의 최신 지침에 따라 교체 키를 다운로드하고 확인한 다음 소스의 키링을 업데이트하십시오. 만료를 무시하고 이전 키의 신뢰 기간을 연장하지 마십시오.

3. 시계, 우분투 아카이브 및 미러 문제를 확인하세요.

저장소가 공식 Ubuntu 아카이브인 경우 타사 키를 가져오지 마십시오. `cv2` 명령으로 시스템 시계가 정확한지 확인하고 timedatectl status, 소스가 유효한 Ubuntu 아카이브 URL과 설치된 릴리스의 코드명을 사용하는지 확인하십시오. 패키지는 ubuntu-keyringUbuntu 아카이브 서명 키를 제공합니다. 신뢰할 수 있는 Ubuntu 소스를 통해 패키지 관리가 여전히 작동하는 경우 다음 명령으로 해당 패키지를 새로 고치십시오.

sudo apt install --reinstall ubuntu-keyring

이 BADSIG메시지는 서명이 APT가 수신한 메타데이터와 일치하지 않음을 의미합니다. 키 가져오기를 다시 시도하는 것은 일반적으로 올바른 해결책이 아닙니다. 시스템 시계 오류, 오래되었거나 일관성이 없는 미러, 캐싱 프록시 또는 저장소 측 게시 문제 등을 확인하고 원인을 수정한 후 다시 시도하십시오. 타사 소스에서만 오류가 발생하고 해당 소스가 필요하지 않은 경우, 해당 소스 .sources또는 .list항목을 비활성화하고 관리자에게 문의하십시오. 보안 검증은 항상 활성화된 상태로 유지하십시오.

4. 수정 사항을 확인합니다.

저장소 메타데이터를 가져오고 패키지 목록을 완성한 상태에서 apt update를 실행하는 Ubuntu 터미널
소스 또는 키링을 수정한 후 apt update를 다시 실행하고 서명 오류가 더 이상 없는지 확인하십시오.

다시 실행하세요 sudo apt update. 영향을 받는 저장소를 서명 경고 없이 가져오고 APT가 정상 작동하면 복구가 완료된 것입니다 Reading package lists... Done. 업데이트가 성공했다고 해서 타사 게시자가 안전하다는 것을 보장하는 것은 아닙니다. 단지 메타데이터 서명이 사용자가 신뢰하기로 선택한 키와 일치한다는 것을 확인하는 것입니다. 검증에 계속 실패하는 경우, 다른 변경 작업을 진행하기 전에 저장소 URL, 코드명, 키 지문, 키링 권한 및 정확한 오류 토큰을 다시 확인하세요.

지원되는 소스 및 키 형식에 대한 자세한 내용은 Ubuntu의 타사 저장소 지침 , Ubuntu apt-secure 설명서 및 Ubuntu 아카이브 무결성 문서를 참조하십시오 .

댓글 남기기

저장소 키를 복구하여 APT 서명 오류를 해결하세요

저장소 키를 복구하여 APT 서명 오류를 해결하세요

보안을 비활성화하지 않고도 오류가 발생한 소스를 식별하고, 검증된 키를 갱신하고, 결과를 확인하여 Ubuntu APT 서명 경고를 안전하게 해결할 수 있습니다.

3상 전압, 전류, kW, kVA 및 역률 변환 방법

3상 전압, 전류, kW, kVA 및 역률 변환 방법

균형 잡힌 3상 공식을 배우고, 선간 전압, 전류, kW, kVA 및 역률을 단계별로 변환하는 방법을 예제와 함께 확인하고 점검 범위를 살펴보세요.

Ubuntu cgroups를 사용하여 명령의 CPU 및 메모리 사용량을 제한합니다.

Ubuntu cgroups를 사용하여 명령의 CPU 및 메모리 사용량을 제한합니다.

CPUQuota 및 MemoryMax를 사용하여 systemd 범위 내에서 워크로드를 실행한 다음 cgroup v2를 통해 제한 사항을 확인합니다.

Ubuntu Server 24.04에서 Pi-hole 업스트림 DNS를 암호화합니다.

Ubuntu Server 24.04에서 Pi-hole 업스트림 DNS를 암호화합니다.

Ubuntu 24.04에서 dnscrypt-proxy를 Pi-hole의 로컬 DoH 브리지로 설정하고, localhost 전용 리스너, 리졸버 선택, DNS 전환 전 검사 기능을 추가합니다.

Wayland 환경에서 Ubuntu 24.04 터치패드 제스처를 작동시키는 방법

Wayland 환경에서 Ubuntu 24.04 터치패드 제스처를 작동시키는 방법

앱이나 하드웨어 문제를 해결하기 전에 우분투의 터치패드 설정을 확인하고, 웨이랜드(Wayland)가 제대로 작동하는지 확인하고, GNOME에 내장된 스와이프 기능을 테스트해 보세요.

mdadm을 사용하여 Debian 12 RAID 1 미러 구축하기

mdadm을 사용하여 Debian 12 RAID 1 미러 구축하기

데비안 12에서 디스크 두 개를 사용하여 RAID 1 데이터 어레이를 생성 및 검증하고, 안전하게 포맷한 다음, 재부팅 후 자동으로 구성 및 마운트되도록 설정합니다.

매 부팅 시 새로운 키로 Debian 12 Swap을 암호화합니다.

매 부팅 시 새로운 키로 Debian 12 Swap을 암호화합니다.

기존 Debian 12 스왑 파티션에 대한 임의 키 암호화를 설정하고, 활성 dm-crypt 매핑을 확인하고, 최대 절전 모드의 장단점을 이해합니다.

우분투 24.04에서 SSH 사용자의 접근을 특정 디렉터리로 제한하는 방법 (SFTP Chroot 가이드)

우분투 24.04에서 SSH 사용자의 접근을 특정 디렉터리로 제한하는 방법 (SFTP Chroot 가이드)

Ubuntu 24.04 SSH 계정을 chroot 환경, 적절한 권한, 일치 규칙 및 안전한 테스트를 통해 지정된 SFTP 폴더로 제한하고 셸 액세스 권한은 부여하지 않습니다.

우분투의 APT 잠금을 안전하게 해제하고 업데이트를 완료하세요

우분투의 APT 잠금을 안전하게 해제하고 업데이트를 완료하세요

우분투의 dpkg 프런트엔드 잠금을 소유하는 프로세스를 찾아 패키지 작업이 완료될 때까지 기다리고, 잠금 파일을 삭제하지 않고 중단된 설치를 복구합니다.

우분투 데스크톱에서 Btrfs 스냅샷을 자동으로 설정하는 방법

우분투 데스크톱에서 Btrfs 스냅샷을 자동으로 설정하는 방법

Timeshift를 사용하여 Ubuntu Desktop에서 Btrfs 시스템 스냅샷을 예약 설정하고, Ubuntu 서브볼륨 레이아웃을 확인하고, 보존 기간을 선택하고, 스냅샷으로 보호할 수 없는 항목을 이해합니다.