본문 바로가기
DevOps

Ubuntu: apt-get update() { the public key is not available; }

by yaans 2024. 9. 5.

 

 

The following signatures couldn't be verified because the public key is not available

 

Ubuntu 에서 패키지 레지스트리를 업데이트하면 가끔 다음과 같은 에러가 발생한다

 

 

 

root@CPU02:~/01-k8s# apt-get update
Hit:2 https://download.docker.com/linux/ubuntu bionic InRelease
Err:2 https://download.docker.com/linux/ubuntu bionic InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 7EA0A9C3F273FCD8

 

docker 설치를 위한 https://download.docker.com/linux/ubuntu 경로에서 나는 에러

 

 

root@CPU02:~/01-k8s# apt-get update
Ign:1 https://pkg.jenkins.io/debian-stable binary/ InRelease
Hit:2 https://pkg.jenkins.io/debian-stable binary/ Release
Hit:5 http://kr.archive.ubuntu.com/ubuntu bionic InRelease
Hit:6 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:7 http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_18.04  InRelease
Hit:4 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.27/deb  InRelease
Hit:8 http://kr.archive.ubuntu.com/ubuntu bionic-updates InRelease
Err:4 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.27/deb  InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 234654DA9A296436
Hit:9 http://kr.archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists... Done
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.27/deb  InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 234654DA9A296436
W: Failed to fetch https://pkgs.k8s.io/core:/stable:/v1.27/deb/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 234654DA9A296436
W: Some index files failed to download. They have been ignored, or old ones used instead.

 

kubernetes 1.27 버전 설치를 위한 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.27/deb 경로에서 나는 에러

 

 

도커와 쿠버네티스 둘다 저장소에서 패키지를 설치하기 전 공개 서명키를 다운로드 받아와서 진행해야 하는 패키지들이다

현재 그 서명키 정보가 올바르지 못한 것 (만료된듯 보인다)

 

apt 업데이트 시 /etc/apt/sources.list.d/ 경로 밑에 있는 registry 정보들을 참고한다

 

이 경로 밑에 정보가 올바른 정보인지 확인해 보고 (올바르지 않다면 404 오류가 뜰 가능성)

올바르지 않은 서명키 오류가 발생한다면 공식 문서에서 특정 버전에 올바른 Release.key를 다시 다운받아 본다

 

 

쿠버네티스 1.27 버전 설치를 위한 명령어는 다음과 같다

sudo mkdir -p -m 755 /etc/apt/keyrings # Ubuntu 22.04 이전 버전에서 기본으로 제공하지 않는 디렉토리
# kubernetes 패키지 저장소 공개 서명키 다운로드 (1.27 버전을 특정)
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.27/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
# kubernetes 1.27 apt 저장소 추가  (마이너 버전 주의)
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.27/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

 

 

 /etc/apt/sources.list.d/  에 저장된 기존 정보를 삭제한 뒤 위 명령어로 새로 세팅하였다

댓글