![dnf 자체 서명 패키지 설치 오류: GPG 확인 실패](https://linux55.com/image/226488/dnf%20%EC%9E%90%EC%B2%B4%20%EC%84%9C%EB%AA%85%20%ED%8C%A8%ED%82%A4%EC%A7%80%20%EC%84%A4%EC%B9%98%20%EC%98%A4%EB%A5%98%3A%20GPG%20%ED%99%95%EC%9D%B8%20%EC%8B%A4%ED%8C%A8.png)
저장소와 패키지가 있고 Fedora 39의 해당 저장소에서 설치하고 싶습니다.
이 저장소는 여기에서 사용됩니다(테스트 목적으로 버킷 이름 ubuntu를 무시하십시오. 여기에는 rpm 저장소가 포함되어 있습니다).https://storage.googleapis.com/repotestubuntu2204생성하여createrepo
패키지는 생성된 키 (RSA 4096비트, 비밀번호 없음, 만료 없음)를 통해 sample_project-1.3.5-1.fc39.x86_64.rpm
C hello world에 의해 서명됩니다 .rpm --addsign
gpg --gen-key
이 저장소 추가
dnf config-manager --add-repo https://storage.googleapis.com/repotestubuntu2204/sample_project.repo
Adding repo from: https://storage.googleapis.com/repotestubuntu2204/sample_project.repo
문제 없을 것 같습니다. 이제 패키지를 설치해 보세요.
dnf install -yv sample_project
...
Using rpmkeys executable at /usr/bin/rpmkeys to verify signatures
Package sample_project-1.3.5-1.fc39.x86_64.rpm is not signed
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: GPG check FAILED
따라서 패키지가 서명되지 않았음을 알려주고 이를 확인하기 위해 rpmkey를 사용하고 있습니다. 좋아, rpm 자체를 다운로드하고 서명을 확인하세요.
wget https://storage.googleapis.com/repotestubuntu2204/sample_project-1.3.5-1.fc39.x86_64.rpm
rpmkeys -Kv sample_project-1.3.5-1.fc39.x86_64.rpm
sample_project-1.3.5-1.fc39.x86_64.rpm:
Header SHA256 digest: OK
Header SHA1 digest: OK
Payload SHA256 digest: OK
MD5 digest: OK
gpg import 및 rpm --import를 시도했지만 도움이 되지 않습니다. 내가 아는 한 b/c해서는 안 됩니다. .repo 파일에 gpgkey에 대한 링크가 있는데 저장소를 추가할 때 성공적으로 가져온 것으로 보입니다. .
똑같은 프로그램을 사용하여 openSUSE용으로 구축된 rpm은 잘 작동하고 zypper는 저장소를 추가하며 공개 키를 신뢰해야 합니다. 그게 전부입니다. 하지만 페도라는 키를 신뢰할지 여부를 묻지 않아 다소 수상쩍습니다. 그러나 키 파일을 수동으로 다운로드하고 가져오는 것도 도움이 되지 않습니다.
yum install에서도 같은 오류가 발생합니다. rpm -i는 문제 없이 작동합니다. 서명에 문제가 있나요?
답변1
알아 냈습니다. Fedora의 rpm 서명을 디버깅하는 동안 --showrc
서명 명령이 가 되도록 옵션을 추가했는데 rpm --showrc --verbose --addsign *.rpm
헤더에 서명하지 않은 것으로 나타났습니다. rpm --addsign *.rpm
일하다