본문 바로가기

리눅스

우분투 패키지 관리자에서 GPG 키 관련 오류 해결

반응형

우분투 패키지 관리자에서 GPG 키 관련 오류 해결

GPG 키 관련 문제가 발생하면 apt-keyring을 사용하여 오류를 해결합니다.

$ sudo apt-get update
Hit:1 https://mirror.kakao.com/ubuntu jammy InRelease
...
Fetched 2,857 kB in 2s (1,337 kB/s)
Reading package lists... Done
W: https://nginx.org/packages/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

1. apt-key 삭제

현재 시스템에 등록된 모든 키를 확인하고 삭제합니다.

sudo apt-key list
$ sudo apt-key list
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62
uid           [ unknown] nginx signing key <signing-key@nginx.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
------------------------------------------------------
pub   rsa4096 2018-09-17 [SC]
      F6EC B376 2474 EDA9 D21B  7022 8719 20D1 991B C93C
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>

목록에서 nginx와 관련된 키를 찾아서 삭제합니다.

sudo apt-key del KEY_ID
echo "573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62" | tr -d ' '
$ echo "573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62" | tr -d ' '
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
sudo apt-key del 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
$ sudo apt-key del 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
728x90

2. apt-keyring 설치

최신 버전의 Ubuntu에서는 apt-keyring 패키지를 통해 GPG 키를 관리합니다.

sudo apt-get update
sudo apt-get install -y gnupg

3. GPG 키 추가

GPG 키를 직접 추가합니다.

wget https://nginx.org/keys/nginx_signing.key
$ wget https://nginx.org/keys/nginx_signing.key
--2023-11-18 00:13:25--  https://nginx.org/keys/nginx_signing.key
Resolving nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5704::6, ...
....
nginx_signing.key  100%[======================================>]   1.52K  --.-KB/s    in 0s

2023-11-18 00:13:26 (1.19 GB/s) - ‘nginx_signing.key’ saved [1561/1561]
gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg nginx_signing.key

4. apt 소스 업데이트

sources.list 파일을 열어서 기존의 apt-key 관련 설정을 수정하고, 새로운 GPG 키를 사용하도록 업데이트합니다.

vim /etc/apt/sources.list

파일 내용 중 기존의 deb 라인을 수정하여 아래와 같이 변경합니다.

deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/ubuntu/ jammy nginx

파일을 저장한 후에 다음 명령어를 실행하여 업데이트합니다.

sudo apt-get update
$ sudo apt-get update
Hit:1 https://mirror.kakao.com/ubuntu jammy InRelease
Hit:2 https://mirror.kakao.com/ubuntu jammy-updates InRelease
Hit:3 https://mirror.kakao.com/ubuntu jammy-backports InRelease
Hit:4 https://mirror.kakao.com/ubuntu jammy-security InRelease
Hit:5 https://deb.nodesource.com/node_18.x nodistro InRelease
Hit:6 https://ppa.launchpadcontent.net/ansible/ansible/ubuntu jammy InRelease
Hit:7 https://nginx.org/packages/ubuntu jammy InRelease
Reading package lists... Done

 

이제 위의 단계를 따르면 GPG 키를 올바르게 관리하고, 더 이상 apt-key를 사용하지 않도록 설정할 수 있습니다.

 

더보기

---

sudo apt-key list
sudo apt-key del 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
wget https://nginx.org/keys/nginx_signing.key -O /etc/apt/trusted.gpg.d/nginx_signing.key
vim /etc/apt/sources.list.d/nginx_org_packages_ubuntu.list
deb [signed-by=/etc/apt/trusted.gpg.d/nginx_signing.key] https://nginx.org/packages/ubuntu/ jammy nginx
sudo apt-get update
$ sudo apt-get update
Hit:1 https://mirror.kakao.com/ubuntu jammy InRelease
Hit:2 https://mirror.kakao.com/ubuntu jammy-updates InRelease
Hit:3 https://mirror.kakao.com/ubuntu jammy-backports InRelease
Hit:4 https://mirror.kakao.com/ubuntu jammy-security InRelease
Hit:5 https://nginx.org/packages/ubuntu jammy InRelease
Reading package lists... Done

---

 

728x90
반응형

'리눅스' 카테고리의 다른 글

CentOS 7에서 Gradle을 설치하는 방법  (0) 2023.11.20
CentOS 7에서 JDK 17(JAVA)을 설치하는 방법  (0) 2023.11.20
ngrep 명령어  (0) 2023.11.16
procps와 procps-ng의 주요 차이점  (0) 2023.11.15
ps 명령어  (0) 2023.11.15