Github Verified Commit

로컬 커밋에서 GPG를 사용해 Verified Commit을 하기 위한 설정 방법
설치
brew install gnupg pinentry-mac
키 생성
gpg --full-generate-key
위 명령어 실행 후 아래 옵션으로 생성
(1) RSA and RSA
keysize: 4096
0 = key does not expire
Real name: hyoguoo
Email address: hyoguoo@gmail.com
Comment:
옵션 설정을 마치면 암호를 입력하라는 메시지가 나오는데, 이 암호는 나중 단계에서 최초 커밋할 때 사용된다.
생성 된 키 확인
gpg --list-secret-keys --keyid-format=long
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
/Users/hyogu/.gnupg/pubring.kbx
-------------------------------
sec rsa4096/A*************** 2023-04-25 [SC]
B***************************************
uid [ultimate] hyoguoo <hyoguoo@gmail.com>
ssb rsa4096/C*************** 2023-04-25 [E]
위에 값 중 A로 시작하는 키가 있는 곳이 GPG Key ID
git config 설정
.gitconfig
파일에 아래의 내용 추가
[user]
name = hyoguoo
email = hyoguoo@gmail.com
signingkey = A***************
[commit]
gpgsign = true
[gpg]
program = gpg
GPG Agent 설정
pinentry
설치 위치 확인
which pinentry-mac
확인되는 설치 경로
/opt/homebrew/bin/pinentry-mac
기준 아래의 명령어 실행
echo "pinentry-program /opt/homebrew/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
GPG Agent 재실행
killall gpg-agent
GiHub 키 등록
gpg --armor --export A***************
-----BEGIN PGP PUBLIC KEY BLOCK-----
...
...
...
-----END PGP PUBLIC KEY BLOCK-----
위의 명령어를 실행해 GPG Key 확인하면 출력되는 내용(BEGIN ~ END까지)을 복사 후
GitHub - Settings - SSH and GPG keys - New GPG key
에서 복사한 내용을 붙여넣기 후 등록
커밋 확인
최초 커밋 시 위에서 설정한 비밀번호 입력하면 Verified Commit
이 된다.
사용 중 커밋 에러가 발생하는 경우
커밋 시 아래와 같은 GPG 서명 에러가 발생할 수 있다.
error: gpg failed to sign the data:
gpg: signing failed: Bad CA certificate
fatal: 커밋 오브젝트를 쓰는데 실패했습니다
이는 GPG 키에 대한 신뢰(trust) 설정이나 pinentry 설정이 제대로 되어 있지 않은 경우 발생할 수 있는데, 아래 단계를 통해 문제를 해결할 수 있다.
1. GPG 키 확인 및 git에 등록된 키 일치 여부 확인
gpg --list-secret-keys --keyid-format LONG
git config --global user.signingkey A***************
2. 해당 키에 대한 신뢰 수준을 ultimate
로 수동 설정
ultimate
로 수동 설정gpg --edit-key A***************
프롬프트에서 다음과 같이 입력
trust
5
3. pinentry 경로 확인 및 gpg-agent 설정 파일에 반영
which pinentry-mac
echo "pinentry-program /opt/homebrew/bin/pinentry-mac" > ~/.gnupg/gpg-agent.conf
killall gpg-agent
위의 절차를 모두 수행한 뒤 다시 커밋을 시도하면 다시 정상적으로 Verified
커밋이 가능해진다.
Last updated
Was this helpful?