Github에서 내 Commit에 서명하기
포스트
취소

Github에서 내 Commit에 서명하기

GPG Key 등록하기

각 쉘 명령어는 모두 Git Bash에서 진행한다.

  1. gpg key 생성하기
    1
    
    gpg --full-generate-key
    
    • RSA 알고리즘을 사용한다.
    • key size는 4096 이상으로 한다.
    • real name과 email은 commit할 username과 email로 한다.
  2. gpg key 확인하기
    1
    
    gpg --list-secret-keys --keyid-format LONG
    
    • 결과
      1
      2
      3
      4
      5
      
      /Users/hubot/.gnupg/secring.gpg
      ------------------------------------
      sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
      uid                          Hubot
      ssb   4096R/42B317FD4BA89E7A 2016-03-10
      

      여기서 3AA5C34371567BD2가 gpg key id 이다.

  3. export
    1
    
    gpg --armor --export 3AA5C34371567BD2
    

    3AA5C34371567BD2 이 부분은 위에서 확인한 gpg key id를 적어준다.

    • 결과
      1
      2
      3
      4
      5
      
      -----BEGIN PGP PUBLIC KEY BLOCK-----
      .
      .
      .
      -----END PGP PUBLIC KEY BLOCK-----
      
  4. github에 gpg key 등록하기 GPG keys Settings에서 export한 내용을 복사해 등록해준다.

Mac에서…

1
2
brew install gnupg
brew install pinentry-mac

brew의 gnupg는 실제로 gnupg2로 링크되어 있기 때문에 github가 요구하는 gpg2 버전을 충족한다. mac에 기본적으로 pinentry가 깔려있겠지만, 만약 commit 할 때 아래와 같은 에러가 발생한다면 pinentry-mac을 설치해준다.

1
2
error: gpg failed to sign the data
fatal: failed to write commit object

pinentry-mac을 설치해도 이 같은 에러가 계속 난다면 아래 절차를 수행해주자.

1
2
echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
gpgconf --kill gpg-agent

commit 할 때 서명하기

  • git config
    1
    
    git config --global commit.gpgsign true
    
  • commit 할 때
    1
    
    git commit -S -m your commit message
    

commit 테스트

1
git commit --allow-empty -S -m 'commit sv test'

사진

성공! X)

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.