Repo APT 보안 - apt-get 업데이트 GPG 서명이 유효하지 않음

Repo APT 보안 - apt-get 업데이트 GPG 서명이 유효하지 않음

aptly를 사용하여 새 apt 저장소를 설정하고, 저장소에 서명하고, aptly를 사용하여 저장소를 제공하고, apt 키링에 공개 gpg 키를 추가한 후 다음 명령 중에 오류가 발생합니다 apt update.

Err:3 http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease                                    
  The following signatures were invalid: #KEY_ID#
Hit:4 http://apt.postgresql.org/pub/repos/apt sid-pgdg InRelease                  
Reading package lists... Done
W: GPG error: http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease: The following signatures were invalid: #KEY_ID#
E: The repository 'http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease' is not 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.

하지만 서명과 gpg 키는 괜찮습니다. InRelease 파일의 gpg 서명을 성공적으로 확인했습니다.

curl http://#REPO_URL#/InRelease | gpg --keyring /etc/apt/trusted.gpg --verify
gpg: Signature made Wed 11 Jan 2017 04:01:23 PM CET
gpg:                using RSA key #KEY_ID#
gpg: Good signature from "#DESCRIPTION_GPG_KEY#" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: #GOOD_KEY_FINGERPRINT#

또한 유사한 명령을 사용하여 Release및 파일을 확인했습니다 Release.gpg.

그 동안 무슨 일이 apt update일어나는지 알아보려고 합니다 .strace -o /tmp/strace -ff apt updategrep

grep 'apt.*key' ./strace*
./strace.29829:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.ORUwxh", "/tmp/apt.data.kKXyrN"], [/* 28 vars */]) = 0
./strace.29829:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.29888:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.utRWBD", "/tmp/apt.data.Fo1Lka"], [/* 28 vars */]) = 0
./strace.29888:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.29947:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.ug6xiV", "/tmp/apt.data.Yv4zFs"], [/* 28 vars */]) = 0
./strace.29947:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.30006:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.QSyrCg", "/tmp/apt.data.LK9DGO"], [/* 28 vars */]) = 0
./strace.30006:open("/usr/bin/apt-key", O_RDONLY)      = 4

이 오류를 어떻게 디버깅하고 수정할 수 있나요?

답변1

Debian 8(jessie)에서 Debian 9(stretch)로 업그레이드할 때도 동일한 문제가 발생했습니다. 데비안 9에는 최소한 2048비트 GPG 키가 필요하고 내 키는 1024비트에 불과한 것으로 나타났습니다. 다음 단계가 나에게 효과적이었습니다.

  • 새로운 4096비트 GPG 키 생성
  • 이 키를 기본 키( ~/.gnupg/gpg.conf, default-key 옵션) 로 사용하도록 GPG 구성을 업데이트했습니다.
  • Release내 문서에 다시 서명하고 작성 Release.gpg하고InRelease

이 시점에서 모든 것이 다시 움직이기 시작했습니다.

답변2

이 오류는 잘못된 버전의 aptly에서 발생합니다(어떤 버전인지 기억할 수 없음).

업그레이드 후 오류가 사라졌습니다.

관련 정보