안녕하세요.
오늘은 Linux에서 apt update를 실행했을 때 생기는 오류를 수정하는 방법을 알아보도록 하겠습니다.
들어가며
Linux 시스템을 사용하다 보면 "다음 서명이 올바르지 않습니다"와 같은 메시지를 흔히 볼 수 있습니다. 이 오류는 apt update 명령을 통해 시스템을 업데이트할 때 주로 발생하며, 패키지 저장소의 소프트웨어에 대한 서명을 확인하는 과정에서 문제가 발생했음을 나타냅니다. 이 괴로운 문제를 해결하고 최신 보안 패치와 소프트웨어 업데이트를 받을 수 있는 방법을 하나씩 알아보도록 하겠습니다.
APT와 서명 확인의 중요성 이해하기
들어가기 전, APT에서 서명 확인이 왜 중요한지 간단하게 알아보도록 하겠습니다. APT는 고급 패키지 도구(Advanced Package Tool)의 약자로, 우분투(Ubuntu)와 같은 데비안 기반 리눅스 배포판에서 사용되는 패키지 관리 시스템입니다. 이 APT는 시스템에 소프트웨어 패키지를 설치하거나 업데이트 또는 제거하는 데 중요한 역할을 합니다. 이때 APT는 패키지의 무결성과 신뢰성을 보장하기 위해 디지털 서명을 사용합니다.
인터넷은 소프트웨어 업데이트를 다운로드할 수 있는 거대하고 자유로운 공간이지만, 동시에 악의적인 사용자가 악성 코드를 합법적인 업데이트로 속일 수 있는 위험도 존재합니다. 이러한 위험을 방지하기 위해 우분투(Ubuntu)와 같은 데비안 기반 리눅스 배포판은 GPG(GNU Privacy Guard)라는 보안 메커니즘을 사용합니다.
왜 서명 확인 과정에서 오류가 생길까?
오류 발생의 원인은 주로 패키지를 서명하는 사용하는 암호화 키에 문제가 있거나 리포지토리 구성에 문제가 발생되었을 경우 발생합니다. 그 외에도 여러 가지가 있지만 가장 일반적인 케이스는 아래와 같습니다.
신뢰할 수 있는 저장소의 만료된 키
시간이 지남에 따라 패키지 저장소에 사용되는 GPG 키가 만료될 수 있습니다. 시스템을 오랫동안 업데이트하지 않은 경우 신뢰할 수 있는 저장소의 키가 만료되어 확인 오류가 발생할 수 있습니다.
잘못된 저장소 구성
sources.list 파일에 입력 오류나 잘못된 소스가 있는 경우 확인 오류가 발생할 수 있습니다.
손상된 패키지 캐시
손상된 패키지 캐시는 확인 프로세스를 방해할 수 있습니다.
서명 오류 수정하기
1단계 - 기본 중 기본, 오류 메시지 확인하기
오류 메시지 자체는 종종 원인에 대한 귀중한 단서를 제공합니다.
예제를 위한 설명용 오류 예제입니다.
오류:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
다음 서명이 올바르지 않습니다: BADSIG 871920D1991BC93C Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>
오류:4 http://security.ubuntu.com/ubuntu jammy-security InRelease
Splitting up /var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_jammy-security_InRelease into data and signature failed
W: GPG 오류: http://archive.ubuntu.com/ubuntu jammy-updates InRelease: 다음 서명이 올바르지 않습니다: BADSIG 871920D1991BC93C Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>
E: The repository 'http://archive.ubuntu.com/ubuntu jammy-updates InRelease' is no longer signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://security.ubuntu.com/ubuntu jammy-security InRelease: Splitting up /var/lib/apt/lists/partial/security.ubuntu.com_ubuntu_dists_jammy-security_InRelease into data and signature failed
우리는 위의 오류 메세지를 기준으로 해결을 진행해 볼 예정입니다. 위의 메시지의 핵심은
W: GPG 오류: http://archive.ubuntu.com/ubuntu jammy-updates InRelease: 다음 서명이 올바르지 않습니다: BADSIG 871920D1991BC93C Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>
이 부분입니다. 위 내용에서 유추할 수 있는 두 가지의 정보는 "http://archive.ubuntu.com/ubuntu jammy-updates InRelease" 저장소에서 사용되는 Signature Key 871920D1991BC93C가 올바르지 않다고 합니다.
Repository Name
문제를 일으키는 저장소를 식별하는 데 도움이 됩니다.
Signature Key
이 고유 식별자를 사용하여 올바른 키를 업데이트할 수 있습니다.
주의: 절대 서명 확인 경고를 무시하지 마세요. 시스템 보안을 위한 중요한 보호 장치입니다.
2단계 - 저장소 키 업데이트
오류 메시지가 신뢰할 수 있는 저장소의 만료된 키를 얘기하는 경우 다음과 같이 해결할 수 있습니다.
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net <key_id>
여기서 <key_id>를 우리가 찾으려고 하는 키의 값으로 변경합니다.
한 번에 해결되면 좋겠지만, 저의 경우는 실패했습니다. 이러한 경우 유추할 수 있는 것은 "더 이상 사용되지 않는 저장소일 수도 있다"입니다. apt-update 명령어 실행 시 비활성화하거나 해당 저장소를 제거해 보도록 하겠습니다.
3단계 - 저장소 비활성화 또는 제거
더 이상 저장소가 필요하지 않은 경우 완전히 비활성화하거나 제거할 수 있습니다.
직접 수정하는 방법
텍스트 편집기를 통해 /etc/apt/sources.list 파일을 엽니다. 문제 저장소 URL이 포함된 줄의 처음에 # 기호를 추가합니다. 이렇게 하면 해당 줄이 주석 처리되어 apt가 해당 저장소를 사용하지 않도록 합니다.
명령어를 사용하는 방법 1
sudo apt-key del <key_id>
<key_id>에 삭제하려는 Key를 입력하세요
명령어를 사용하는 방법 1sudo apt --fix-broken install
해당 작업 전, 꼭 백업을 진행하시는 것을 추천드립니다.
4단계 - 그래도 오류가 수정되지 않는 경우
저장소에 문제가 생긴 게 아닌 이상 해당 오류를 수정하기 위해서는 저장된 정보를 초기화하는 극단적인 방법을 사용해야 할 수도 있습니다. 방법은 아래와 같습니다.
apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
apt-get upgrade
5단계 - 지금까지 모든 방법을 적용해도 안될 때
주소를 가져올 수 있는 DNS에 문제가 생겨 적용이 안 되는 사례도 있다고 웹 서핑을 통해 정보를 확인했습니다. 아래와 같이 진행을 해 DNS를 새로운 내용으로 수정합니다.
/etc/network/interfaces 파일 수정
dns-nameservers 8.8.8.8 내용을 추가 후 파일을 저장합니다.
/ect/resolv.conf 파일 수정
nameserver 8.8.8.8 내용을 추가 후 파일을 저장합니다.
마치며
apt-update를 통해 발생되는 오류를 수정해 보았습니다. apt-update시 출력되는 오류에 대해 절대 무시하지 마시고 꼭 수정을 통해 문제를 해결하고 시스템이 최신 보안 패치와 소프트웨어 업데이트를 받을 수 있도록 하시기 바랍니다.
긴 글 읽어주셔서 감사합니다.
레퍼런스
apt-get update failed on the latest ubuntu-22.04 image (2022.05.29.1) #5656
'Linux' 카테고리의 다른 글
[Linux] 디스크 용량을 확인하는 방법 (0) | 2024.06.17 |
---|