메뉴 닫기

APT GPG 키 등록 방식 변경: apt-key 제거와 signed-by 활용

APT GPG 키 등록은 Ubuntu 서버에서 외부 패키지 저장소를 추가할 때 사용하는 기본적인 작업 중 하나입니다. 기존에는 apt-key add 명령어를 이용해 저장소의 공개키를 시스템에 등록하는 방식이 일반적이었지만, 현재는 해당 방식이 deprecated 되었으며 최신 Ubuntu 버전에서는 명령어 자체가 제거됐습니다.

기존 서버에서는 별다른 문제 없이 사용하던 명령어가 OS 버전 변경 이후 실행되지 않는 사례입니다. 특히 기존 설치 가이드나 자동화 스크립트를 그대로 사용하는 경우 저장소 등록 단계에서 오류가 발생할 수 있습니다.

이번 글에서는 Ubuntu 24.04와 26.04를 비교해 apt-key의 변경 사항을 확인하고, 기존 방식 대신 사용되는 저장소별 GPG 키 관리 방식인 signed-by를 실제 외부 저장소를 이용해 살펴봅니다.

1. apt-key는 왜 변경되었을까?

apt-key는 APT에서 패키지의 서명을 검증하는 데 사용하는 GPG 공개키를 관리하는 명령어입니다.

과거에는 외부 저장소를 추가할 때 다음과 같은 명령어를 사용하는 경우가 많았습니다.

wget -qO- https://example.com/repository.gpg | apt-key add -

이 방식은 등록한 공개키를 시스템 전체의 신뢰 키링에 추가하는 구조입니다.

문제는 특정 저장소를 위해 등록한 키가 다른 APT 저장소의 패키지 서명 검증에도 사용될 수 있다는 점입니다. 저장소별로 신뢰 범위를 구분하기 어렵다는 한계가 있습니다.

이러한 문제를 개선하기 위해 APT에서는 저장소마다 별도의 GPG 키를 지정할 수 있는 signed-by 방식을 권장하고 있습니다.

이를 이용하면 특정 저장소에서 사용할 공개키를 별도로 지정할 수 있으며, 불필요하게 시스템 전체에 신뢰 권한을 부여하지 않아도 됩니다.

2. Ubuntu 버전에 따른 apt-key 변경 사항

apt-key는 이미 이전 Ubuntu 버전부터 deprecated 상태로 전환됐습니다. 이후에도 기존 명령어는 일부 버전에서 유지됐지만, Ubuntu 26.04에서는 제거됐습니다.

운영체제 APT 버전 apt-key 상태
Ubuntu 22.04 2.4 계열 Deprecated
Ubuntu 24.04 2.8 계열 Deprecated
Ubuntu 26.04 3.2 계열 제거

Ubuntu 공식 문서에서도 apt-key는 Ubuntu 24.04까지 제공되는 것으로 안내하고 있으며, Ubuntu 26.04 릴리스 노트에서는 명령어 제거를 명시하고 있습니다.

참고:

3. Ubuntu 24.04와 26.04 실제 테스트 환경

실제 명령어의 동작 차이를 확인하기 위해 Ubuntu Server 24.04 LTS와 Ubuntu Server 26.04 LTS 환경을 각각 구성했습니다.

두 서버 모두 동일한 사양으로 구성하고 APT 버전과 기존 키 관리 도구의 제공 여부를 확인했습니다.

항목 Ubuntu 24.04 Ubuntu 26.04
호스트명 ubuntu-24-04 ubuntu-26-04
운영체제 24.04.4 LTS 26.04 LTS
APT 2.8.3 3.2.0
curl 설치됨 설치됨
GPG 설치됨 설치됨
네트워크 정상 정상

4. apt-key 명령어 실행 결과 비교

먼저 두 서버에서 동일하게 apt-key list 명령어를 실행했습니다.

Ubuntu 24.04 실행 결과

Ubuntu 24.04에서는 apt-key 실행 파일이 여전히 제공됩니다.

명령어를 실행하면 기존에 등록된 GPG 키 목록을 확인할 수 있지만, 명령어가 deprecated 되었다는 경고가 함께 출력됩니다.

Ubuntu 24.04에서 apt-key 실행 시 Deprecated 경고가 출력되는 화면

Ubuntu 26.04 실행 결과

Ubuntu 26.04에서는 기존 명령어를 실행할 수 없습니다.

실제 테스트에서도 apt-key: command not found 오류가 출력됐으며, 기존 실행 파일이 존재하지 않는 것을 확인했습니다.

Ubuntu 26.04에서 apt-key 명령어가 제거되어 실행되지 않는 화면

두 버전의 차이

비교 항목 Ubuntu 24.04 Ubuntu 26.04
apt-key 실행 가능 불가능
키 목록 확인 가능 불가능
실행 결과 Deprecated 경고 Command not found
대체 방식 signed-by 권장 signed-by 사용

기존에는 사용을 권장하지 않는 수준이었다면, 최신 버전에서는 명령어 자체가 제거된 것입니다.

따라서 기존 설치 가이드나 자동화 스크립트에서 apt-key를 사용하는 부분이 있다면 OS 업그레이드 이후 정상적으로 실행되는지 확인할 필요가 있습니다.

5. 외부 저장소 추가 전 APT 환경 확인

다음으로 외부 저장소를 추가하기 전 기본 Ubuntu 저장소의 업데이트가 정상적으로 이루어지는지 확인했습니다.

두 서버 모두 별도의 Grafana 저장소나 GPG 키가 등록되지 않은 초기 상태이며, 기본 Ubuntu 저장소를 통해 패키지 목록을 정상적으로 가져오는 것을 확인했습니다.

Ubuntu 24.04에서 기본 APT 저장소 업데이트가 정상적으로 완료된 화면

Ubuntu 26.04에서 기본 APT 저장소 업데이트가 정상적으로 완료된 화면

이후 실제 외부 저장소를 추가해 기존 방식과 달라진 GPG 키 관리 방식을 확인합니다.

6. signed-by를 이용한 저장소별 GPG 키 관리

새로운 APT 저장소 관리 방식에서는 GPG 공개키를 별도 파일로 관리하고, 저장소 설정에서 해당 키 파일의 경로를 지정합니다.

일반적으로 관리자가 직접 추가하는 키는 다음 경로에 저장합니다.

/etc/apt/keyrings/

저장소 설정에서는 signed-by 옵션을 사용합니다.

deb [signed-by=/etc/apt/keyrings/example.asc] https://repo.example.com/ubuntu stable main

이렇게 설정하면 해당 저장소의 패키지 서명 검증에 지정한 공개키를 사용하게 됩니다.

기존처럼 시스템 전체의 신뢰 키링에 공개키를 추가하는 방식과 달리 저장소별로 인증 범위를 구분할 수 있다는 점이 핵심입니다.

7. Grafana 공식 저장소를 이용한 실제 적용 사례

실제 외부 저장소에서도 signed-by 방식이 사용되는지 확인하기 위해 Grafana 공식 APT 저장소를 테스트 대상으로 선정했습니다.

Grafana는 Ubuntu 및 Debian 환경에서 APT 저장소를 통해 패키지를 제공하며, 공식 설치 문서에서도 별도의 GPG 키 파일과 signed-by 옵션을 사용합니다.

참고: Grafana 공식 설치 문서

7.1 GPG 공개키 확인

먼저 Grafana 공식 저장소에서 제공하는 GPG 공개키를 확인합니다.

Grafana 공식 APT 저장소의 GPG 공개키와 Fingerprint 확인

공개키를 등록하기 전에는 공식적으로 안내된 지문과 일치하는지 확인하는 것이 중요합니다.

7.2 저장소별 키링 등록

공개키를 확인한 후 /etc/apt/keyrings/에 저장하고, 파일 권한을 설정합니다.

저장소별 GPG 키 파일이 등록되고 권한이 설정된 화면

7.3 signed-by 저장소 설정

키 파일을 등록한 후 Grafana 저장소 설정에 해당 파일의 경로를 지정합니다.

deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main

이 설정은 Grafana 저장소에서 사용하는 공개키를 별도로 지정하는 방식입니다.

 

Grafana APT 저장소에 signed-by 옵션이 적용된 설정 파일

7.4 저장소 인증 및 패키지 목록 확인

마지막으로 APT 저장소 업데이트를 실행해 GPG 서명 검증이 정상적으로 이루어지는지 확인합니다.

Ubuntu 버전별 Grafana 공식 저장소의 APT 업데이트 및 서명 검증 결과

저장소 업데이트가 정상적으로 완료되면 패키지 정보에서도 Grafana 저장소를 통해 제공되는 패키지 버전을 확인할 수 있습니다.

이 과정을 통해 Ubuntu 24.04와 26.04 모두에서 저장소별 GPG 키 관리 방식이 정상적으로 적용되는지 비교할 수 있습니다.

※ 이 글은 본인의 실제 경험과 학습을 기반으로 직접 작성하였으며, AI는 참고용으로만 활용하였습니다

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다