git 커밋 GPG로 서명하기
!
경고: 이 글이 작성된 지 365일이 넘었습니다. 글의 정보가 오래되어 부정확할 수 있습니다.GPG로 git 커밋에 서명하면 깃허브에서 “Verified” 배지가 붙습니다. 하지만 매번 git -S
를 입력하려니 꽤 귀찮은데, 이 튜토리얼로 다시는 -S
태그 입력 없이 커밋에 서명할 수 있습니다!
다음 명령을 실행합니다 (두 번째 명령에서 키는 당연히 변경해야 합니다):
git config --global commit.gpgsign true
git config --global user.signingkey <키 ID>
GPG 키 ID를 잊었다면:
gpg --list-keys --keyid-format short
GPG 사용 방법을 모르시면, 제 GPG 가이드를 확인해보세요.
문제 해결
만약 git
커밋시 다음 에러가 발생한다면:
error: gpg failed to sign the data
fatal: failed to write commit object
gpg
가 쉘 인스턴스를 찾지 못해서 발생하는 문제입니다. 수정하려면 다음 줄을 사용하는 쉘에 따라 ~/.bashrc
나 ~/.zshrc
에 추가합니다:
export GPG_TTY=$(tty)
VS Code 사용 시 터미널 윈도우 크기가 프롬프트보다 작은 경우에도 에러가 발생할 수 있습니다. 터미널 윈도우의 크기를 키우면 문제가 해결됩니다.
윈도우
만약 GPG4Win을 사용하여 GPG 키들을 관리하신다면, 다음 명령을 터미널에서 실행해야 할 수도 있습니다:
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
이 명령을 실행하면 git
이 Git for Windows와 같이 오는 gpg.exe
실행파일 대신 GPG4Win의 실행파일을 사용하게 됩니다.