명령어/Linux

[RHEL] rpmsign RPM 패키지에 GPG 서명

jykim23 2026. 8. 16. 16:30
반응형

부제: 배포할 rpm에 제작자 서명을 박는다

rpmsign --addsign hello-2.12-1.el9.x86_64.rpm   # 서명 추가
rpmsign --resign  hello-2.12-1.el9.x86_64.rpm   # 다시 서명
rpmsign --delsign hello-2.12-1.el9.x86_64.rpm   # 서명 제거
Signature options:
      --addsign                  sign package(s)
      --resign                   sign package(s) (identical to --addsign)
      --delsign                  delete package signatures
      --signfiles                sign package(s) files
      --fskpath=<key>            use file signing key <key>

rpmsign은 rpm 헤더에 GPG 서명을 넣어 패키지의 출처와 무결성을 보장한다. 데비안에서 debsign이 하는 일과 같은 자리다. 서명하려면 먼저 GPG 키가 있어야 하고, ~/.rpmmacros%_gpg_name에 서명자 이름을 지정한다. 사설 레포를 운영하면 배포 전 이 단계를 거친다.

이렇게도 쓴다

서명자 이름을 매크로로 넘겨 서명한다.

rpmsign --define '_gpg_name Max <max@example.com>' --addsign *.rpm

 

레포 디렉토리의 모든 rpm을 한 번에 서명한다.

rpmsign --addsign $(find repo/ -name '*.rpm')

 

패키지 안 개별 파일까지 서명한다(IMA).

rpmsign --signfiles --fskpath=/etc/keys/ima.key hello.rpm

 

서명이 실제로 붙었는지 rpm으로 확인한다.

rpmsign --addsign hello.rpm && rpm -qi hello.rpm | grep Signature

 

기존 서명을 지우고 새 키로 다시 서명한다.

rpmsign --delsign hello.rpm && rpmsign --addsign hello.rpm
반응형