Github GPG 적용 - GitKraken 연동

heunghan·2020년 5월 15일
2
post-thumbnail

목표

GitKraken을 활용하여 GPG 서명된 커밋 생성하여 Github Verified 받기

GPG?

GPG(GnuPG, GNU Privacy Guard)는 gitconfig 파일에 기록된 author 정보에 대한 사실 인증을 해주는 개념이라고 생각하면 편하다.

[user]
  email = heunghan@heunghan.com
  name = heunghan

위의 예시 gitconfig의 author 정보인 name과 email은 자유롭게 수정이 가능하기에 마음만 먹으면 쉽게 회사동료의 name과 email으로 commit이 가능해진다.
따라서 author 정보가 사실인지 확인하기 위해 GPG 를 사용한다.

GPG에 대해서 더 알고 싶다면 GnuPG를 참고하면 된다.

Github Verified?

GPG Key 가 서명된 commit은 Github에서 검증의 의미인 Verified 딱지가 붙는다!
Verified를 클릭하면 GPG key ID 를 포함한 관련 정보가 나온다.

있어보기 위해 Verified 를 받은게 아니라 프로젝트 Branch protection rule로 Require signed commits 를 사용하다보니 GPG 인증이 필요하여 설정하였다.

Branch protection rule에 대해서 알고 싶다면 Github Configuring protected branches를 참고하면 된다.

GPG 설치

Mac OS라면 terminal에서 brew install gpg 를 날리면 된다.
Windows는 Gpg4win에서 설치를 하면된다고 한다. Windows가 없음

termianl에서 gpg --version 을 입력하여 정상적으로 설치가 됐는지 확인해본다.

GPG key 생성

해당 문서에서는 GitKraken을 이용한 방법을 가이드하기에 다른 방법은 Github 문서 - Managing commit signature verification 으로 대체한다.

GPG key 생성 - GitKraken

GPG를 설치했다면 GitKraken을 이용한 GPG key 생성은 간단하다.

Preferences > GPG Preferences 로 이동하여 다른 설정은 기본값으로 두고 Generate new GPG Key 에 Generate 버튼을 클릭하면 로딩이 돌며 끝난다.
만약 Passphrase를 추가하고 싶다면 input box에 입력 후 Generate 버튼을 클릭하면 된다.

로딩 후에 Siging Key(dropdown)를 클릭해보면 현재 선택된 GitKraken Profile 정보로 GPG key 가 생성된 것을 확인할 수 있다.

GPG 설치안하고 generate하거나 GitKraken이 열려있는 상태에서 GPG를 설치했다면 generate동작에서 에러가 발생할 수 있다.
GPG 설치 후 GitKraken을 재실행해주면 해결될 가능성이 높다.

GPG Key 등록

Verified 딱지를 받기 위한 마지막 단계다.

Github Setting으로 이동하여 SSH and GPG keys 항목을 선택하면 등록한 SSH Keys와 함께 GPG Key 리스트에 There are no GPG keys associated with your account. 너 계정에는 등록된 GPG 따윈 없다 라고 설명해주는 화면을 볼 수 있다.

해당 화면에서 New GPG Key를 누르면 Key를 입력하는 화면이 나오는데 Key는 이미 발급받았으니 복붙만 하면된다.
Key 생성 이후 GitKraken을 켜둔 상태로 Github에 접속했다면 다시 GitKraken 화면으로 온다면 Preferences 화면일 것이다. GitKraken을 종료했다면 GitKraken을 실행시켜Preferences > GPG Preferences 로 이동한다.

GPG Preferences에서 사용할(방금 생성한) Siging Key를 선택하고 Copy GPG Public Key 를 클릭하면 복사가 끝난다.
다시 Github으로 돌아와서 textarea에 붙여넣고 Add GPG Key를 누르면 키가 추가된 것을 확인할 수 있다.


이후 GitKraken을 재실행(가끔 GPG 적용이 안 될때가 있다)한 뒤 Commit 생성하면 commit 정보가 적힌 왼쪽위 모서리 화면에 초록색 Icon이 보인다. 초록색 Icon에 커서를 올리면 사진처럼 GPG Signature Details 정보가 나타난다.

이후 Push 한 뒤 Github에서 확인해보면 commit에 Verified가 된 것을 확인할 수 있다.


참고자료
GitKraken - Commit Signing with GPG

profile
Digital Nomad를 꿈꾸는 Android Engineer

0개의 댓글