RPM-GPG-KEY 파일 만들기

RPM-GPG-KEY 파일 만들기
rpm-build를 위한 GPG Key 생성

1 사전 작업[ | ]

  • rpm 빌드용 계정 생성
root가 아닌 계정이 권장됨
[root@zetawiki ~]# useradd builduser
[root@zetawiki ~]# su - builduser
[builduser@jmnote ~]$

2 gpg-agent 시작[ | ]

[builduser@jmnote ~]$ rngd -r /dev/urandom
[builduser@jmnote ~]$ gpg-agent --use-standard-socket --daemon
gpg-agent[2502]: directory `/home/builduser/.gnupg' created
gpg-agent[2502]: directory `/home/builduser/.gnupg/private-keys-v1.d' created
GPG_AGENT_INFO=/home/builduser/.gnupg/S.gpg-agent:2503:1; export GPG_AGENT_INFO;
gpg-agent[2503]: gpg-agent (GnuPG) 2.0.14 started

3 key 생성[ | ]

명령어 예시
cat <<EOF | gpg2 --batch --no-tty --gen-key
%echo Generating a standard key
Key-Type: default
Key-Length: 2048
Subkey-Type: default
Subkey-Length: 2048
Name-Real: Jmnote
Name-Email: jmnote@example.com
Expire-Date: 10y
Passphrase: P@ssw0rd
%commit
%echo done
EOF
→ Name-Real(실명), Name-Email(이메일), Expire-Date(만료일)[1], Passphrase(암호)를 적절히 입력
→ 이 명령어 실행은 몇 초 이내에 끝난다. 만약 끝나지 않고 있으면 Ctrl+C로 취소하고 root계정으로 "gpg-agent 시작" 문단내용을 수행한 후에 다시 해보자.
실행 예시
[builduser@jmnote ~]$ cat <<EOF | gpg --batch --no-tty --gen-key
> %echo Generating a standard key
> Key-Type: default
> Key-Length: 2048
> Subkey-Type: default
> Subkey-Length: 2048
> Name-Real: Jmnote
> Name-Email: jmnote@example.com
> Expire-Date: 10y
> Passphrase: P@ssw0rd
> %commit
> %echo done
> EOF
gpg: keyring `/home/builduser/.gnupg/secring.gpg' created
gpg: keyring `/home/builduser/.gnupg/pubring.gpg' created
gpg: Generating a standard key
gpg: /home/builduser/.gnupg/trustdb.gpg: trustdb created
gpg: key 8E933200 marked as ultimately trusted
gpg: done
→ trustdb 생성됨, key 8E933200는 매우 신뢰롭게 등록됨...

4 gpg 지문 확인[ | ]

[builduser@jmnote ~]$ gpg --fingerprint
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2024-05-29
/home/builduser/.gnupg/pubring.gpg
----------------------------------
pub   2048R/8E933200 2014-06-01 [expires: 2024-05-29]
      Key fingerprint = 2EF8 4B50 BD83 AFAE 3A75  A2DB FD67 3C78 8E93 3200
uid                  Jmnote <jmnote@example.com>
sub   2048R/3D2F8AC9 2014-06-01 [expires: 2024-05-29]
→ 키 8E933200 는 여기서도 확인할 수 있다. 다음 과정에서 이 값이 필요하다.

5 키 파일 추출[ | ]

[builduser@jmnote ~]$ gpg -a -o RPM-GPG-KEY-builduser --export 8E933200
[builduser@jmnote ~]$ cat RPM-GPG-KEY-builduser 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.14 (GNU/Linux)

mQENBFOKe3IBCADDu96SH0NyXXFYra0YX+aMjSLrrHU8lNMnaE9vwJlmEX//ZIln
... (생략)
y8VG+9ualBZSmdvl8Brd4gRFG3mu18BSUmzK8VYmJLvmWqz+2GU=
=O5nm
-----END PGP PUBLIC KEY BLOCK-----
[builduser@jmnote ~]$ echo '%_gpg_name 8E933200' > ~/.rpmmacros
[builduser@jmnote ~]$ cat ~/.rpmmacros
%_gpg_name 8E933200

6 같이 보기[ | ]

7 주석[ | ]

  1. 0으로 하면 만료되지 않는다. 여기서는 10y로 했으므로 10년 후 만료
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}