PGP 키를 RPM으로 가져왔는지 확인하는 방법은 무엇입니까?

PGP 키를 RPM으로 가져왔는지 확인하는 방법은 무엇입니까?

키는 다음을 통해 가져올 수 있습니다.

rpm --import /경로/to/키

하지만 나중에 해당 키를 가져왔는지 어떻게 알 수 있나요? 다시 가져오려고 하면 오류가 발생하여 실패합니다. 저는 Puppet을 사용하여 키를 설치하고 있으므로 이를 방지하려고 합니다.

答え1

를 사용하여 키를 가져왔는지 다시 확인할 수 있습니다 rpm -qi gpg-pubkey-<version>-<release>. 설치된 경우 rpm은 이에 대한 모든 정보를 제공하고 그렇지 않은 경우 값 1로 종료되므로 꼭두각시 레시피에 unless매개변수 를 추가할 수 있습니다.

exec { "rpm --import /path/to/package":
  # ...
  unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}

答え2

가져온 각 키는 rpmdb 항목을 추가합니다 gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>. gpg-pubkeyrpmdb에서 이름( )과 해당 버전(16진수 지문의 처음 8자)을 확인 하면 됩니다 .

答え3

이 정보를 프로그래밍 방식으로 처리하지 않고 키를 가져왔는지 확인하려는 경우 다음과 같이 모든 키를 나열할 수 있습니다.

rpm -qi gpg-pubkey-\* | grep -E ^Packager

또는 ID의 경우:

rpm -qi gpg-pubkey-\* | grep -E "^Version  "

이것은 많은 사람들에게 명백해 보일 수 있지만 일부에게는 이것이 질문에 대한 더 직접적인 대답이라고 생각합니다(적어도 제목).

答え4

저의 경우(Oracle Linux 7의 경우) 다음 위치에 수동으로 복사해야 했습니다.

/var/lib/rpm/pubkeys/RPM-GPG-KEY-${REPONAME}.key

오류 메시지 없이 공개 키를 두 번 가져올 수도 있지만 여전히 확인에 실패합니다. 하지만 아직 이유를 파악하지 못했습니다. 다음에 시도해 볼 수도 있습니다.

yum makecache

가끔 도움이 된다고 보고되었습니다. strace와 Google을 사용하지 않고도 언제 어디서 무슨 일이 일어나는지에 대한 명확한 문서를 찾을 수 있었으면 좋겠습니다.

이것이 다른 누군가에게 도움이 되기를 바랍니다...

関連情報