우리가 구축한 로컬 yum 저장소를 통해 Chef-11.16.4-1.el6.x86_64.rpm을 서버에서 사용할 수 있도록 만들려고 합니다.
RHEL 저장소에서는 사용할 수 없으므로 수동으로 다운로드하여 저장소에 저장해야 합니다.
yum repo 서버에서 내가 한 일은 다음과 같습니다.
1. cd /packages/rhel65-base/; wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.16.4-1.el6.x86_64.rpm
2. createrepo /packages/rhel65-base/
Yum 클라이언트는 사용 가능한 새 패키지를 볼 수 있습니다.
[user1@testserver01 ~]$ yum list chef
Loaded plugins: amazon-id, rhui-lb, security
Installed Packages
chef.x86_64 11.16.0-1.el6 installed
Available Packages
chef.x86_64 11.16.4-1.el6 local-rhel65-base
그러나 최신 Chef 패키지를 설치하려고 하면 다음 오류가 나타납니다.
warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
Public key for chef-11.16.4-1.el6.x86_64.rpm is not installed
Chef rpm이 아직 서명되지 않았다고 가정하고 다음을 통해 직접 서명을 시도했습니다.https://iuscommunity.org/pages/CreatingAGPGKeyandSigningRPMs.html하지만 여전히 작동시킬 수 없습니다.
Chef 웹사이트에서 찾을 수 있는 몇 가지 유용한 정보는 패키지의 SHA1 체크섬 값입니다.
이 문제를 해결하기 위한 아이디어나 제안이 있는 사람이 있습니까? 감사해요!
답변1
가장 간단한 해결책은 패키지가 서명되지 않은 경우일 수 있습니다 yum --nogpgcheck install chef
. 로컬 저장소가 있는 경우 다음을 설정할 수 있습니다.
gpgcheck=no
해당 .repo
파일에.
답변2
여기서 문제는 패키지에 서명한 키를 이 저장소에 대한 유효한 GPG 키로 허용하도록 서버를 구성하지 않았다는 것입니다.
가장 간단한 해결책은 물론 yum 을 실행하는 것입니다 nogpgcheck
. 물론 그것도 그다지 안전하지는 않습니다. 그러나 패키지를 다운로드하고 검증한 후 변조될 가능성이 없는 곳에 보관했다면 허용될 수 있습니다.
이것이 허용되지 않는 경우 패키지 서명에 사용된 키의 공개 부분을 가져와서 패키지를 설치하려는 서버에 배치해야 합니다. 거기에 키를 복사하고 실행하면 됩니다 rpm -i /path/to/RPM-GPG-KEY-REPONAME
.
키는 일반적으로 에 있어야 합니다 /etc/pki/rpm-gpg/RPM-GPG-KEY-REPONAME
. 또한 저장소의 저장소 파일에 /etc/yum.repos.d
다음 줄이 포함되어 있는지 확인하세요.
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-REPONAME
gpgcheck=1
답변3
오래된 질문이지만 여전히 가치가 있으며 답변을 통해 오해의 소지가 있는 정보를 예방할 수 있다고 생각합니다. 메시지에서 볼 수 있듯이 패키지는 다음과 같이 서명됩니다.
Public key for chef-11.16.4-1.el6.x86_64.rpm is not installed
하지만 키가 아직 설치되지 않았습니다. 이 패키지 키를 검색해 보았으나 해당 URL을 찾을 수 없었습니다(실제로 여기까지 온 이유가 바로 그것입니다). 발견/확인되면 다음을 통해 가져올 수 있습니다.
rpm --import <url>
@larsks의 솔루션장애가 있는GPG 키를 확인해보세요..