평소와 같이 "sudo apt update" 명령으로 패키지 업데이트를 했는데 다음과 같은 경고 메시지가 출력됩니다.
$ sudo apt update
...
17 패키지를 업그레이드할 수 있습니다. 확인하려면 'apt list --upgradable'를 실행하십시오.
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://cli.github.com/packages stable InRelease: 다음 서명이 올바르지 않습니다: EXPKEYSIG 23F3D4EA75236059 GitHub CLI <opensource+cli@github.com> 다음 서명들은 공개키가 없기 때문에 인증할 수 없습니다: NO_PUBKEY 5612B3646E113325
W: https://cli.github.com/packages/dists/stable/InRelease 파일을 받는데 실패했습니다 다음 서명이 올바르지 않습니다: EXPKEYSIG 23F3D4EA75236059 GitHub CLI <opensource+cli@github.com> 다음 서명들은 공개키가 없기 때문에 인증할 수 없습니다: NO_PUBKEY 5612B3646E113325
W: Some index files failed to download. They have been ignored, or old ones used instead.
이 경고는 GitHub CLI(gh) 공식 저장소의 서명용 GPG 키가 만료(EXPKEYSIG)되었고, GitHub 측에서 새로 배포한 키(NO_PUBKEY 5612B3646E113325)가 사용자의 시스템에 아직 등록되지 않아 발생한 문제라는 의미라고 합니다.
그래서, GitHub CLI 공식 가이드에 맞춰 만료된 키를 최신 키로 교체하면 간단히 해결됩니다.
1. GitHub의 최신 공개 키를 받아 시스템의 키링 디렉터리에 저장합니다.
$ sudo mkdir -p -m 755 /etc/apt/keyrings
$ wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null
sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
명령어가 에러 없이 종료되면 /etc/apt/keyrings/githubcli-archive-keyring.gpg 파일이 생성되거나 갱신됩니다.
2. 새로 저장한 키를 사용하도록 저장소 설정 파일(/etc/apt/sources.list.d/github-cli.list)을 최신화합니다.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
3. 저장소 목록을 다시 갱신해서, 앞서와 같은 경고 메시지가 사라졌는지 확인합니다.
$ sudo apt update