IT/IT WIKI

[IT Wiki] Github 커밋에 VERIFIED 태그 다는 법(macOS)

wookiist 2021. 6. 20. 14:20

프롤로그

언젠가 예전부터 사용하던 맥북프로에서 커밋했을 땐, 아래처럼 예쁜 VERIFIED 마크가 붙어서 나왔는데, 최근에 주력으로 사용하고 있는 맥 미니에서 커밋을 하면 태그가 붙어 있지 않은 것을 볼 수 있었습니다. 처음에는 그냥 참고 넘길까 했는데, 보다보니 없으면 뭔가 내가 비선별인원이 된 기분이라 확인 받은 사람 대열에 동승하기 위해 오늘 작업을 하게 되었습니다.

https://user-images.githubusercontent.com/16011260/122662439-eb3bd580-d1cd-11eb-8b29-506c8ef48dbf.png

요구사항

이 포스트에서 다루는 환경은 macOS입니다. 다른 환경에서 사용하고 계신 경우, 불편하시더라도 추가적인 구글링을 통해 꼭 원하시는 성과를 얻으시길 기원합니다!

GPG Key 설정하기

큰 흐름은 여기를 따라갑니다. 다른 글들도 많이 봤는데, 계속 에러가 나서 직접 수정한 부분도 있습니다.

GNUPG, PINENTRY-MAC 설치하기

GNUPG와 PINENTRY-MAC을 설치해줍니다.

$ brew install gnupg pinentry-mac

GPG Key 생성하기

이 파트는 여기를 따라갑니다.

$ gpg --full-generate-key
# 순서대로 다음처럼 선택/입력합니다.

# 만들고자 하는 key의 종류 입력
-> 1
# keysize 입력
-> 4096
# valid 입력(언제까지 유효하게 할 것인지, 0 = 만료없음)
-> 0
# valid로 생성할 것인지 확인는 내용 입력
-> y
# 이름 입력
-> Jaewook Oh
# Github에서 사용하는 이메일 주소 입력
-> wookiist@wookiist.dev
# 남기고 싶은 코멘트 입력(입력하지 않고 Enter 치고 넘어갔습니다)
-> (Enter)
# 마지막으로 확인
-> o

여기까지 실행하셨으면, 화면이 전환되면서 새로운 암호를 입력하는 화면이 뜹니다. 새로운 암호를 입력하고 나면 암호 확인을 한 번 더 하고, 종료됩니다. 여기서 입력한 암호는 추후 한 번 더 사용해야 하니 꼭 기억해주세요.

GPG Key ID 받아오기

이 파트는 여기를 따라갑니다. 생성한 GPG Key의 ID를 확인하는 과정입니다. 아래에 나오는 예제는 GitHub 공식 문서에서 제공한 예제입니다. 제 GPG Key와는 무관합니다.

$ gpg --list-secret-keys --keyid-format=long
/Users/hubot/.gnupg/secring.gpg
------------------------------------
sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid                          Hubot 
ssb   4096R/42B317FD4BA89E7A 2016-03-10

위 결과를 얻으면 우리가 필요한 값인 GPG Key ID는 3AA5C34371567BD2 입니다.

Git Config 설정하기

이 파트는 다시 처음에 소개드린 스택오버플로우 답변을 따릅니다. 우리가 얻은 값 등을 이제 Git Config로 설정해줄 차례입니다.

우선 GPG Key ID 받아오기 파트에서 얻은 Key ID를 mac의 git config에 글로벌로 기록해둡니다. 그리고 나머지 설정도 진행해주겠습니다.

$ git config --global user.signingkey 3AA5C34371567BD2
$ git config --global commit.gpgsign true
$ git config --global gpg.program gpg

GPG Agent 설정하기

pinentry가 설치된 위치 확인하기

많은 글에서 pinentry가 설치된 위치 때문에 정상적으로 설정이 마무리 되지 않는 것을 확인할 수 있었습니다. 본인의 pinentry가 어디에 설치되었는지를 반드시 확인하시고 진행하시기 바랍니다.

제 경우에는 brew로 설치했다보니 /opt/homebrew/bin/pinentry-mac 에 위치하고 있었습니다. 다른 많은 글들에서는 /usr/local/bin/pinentry-mac 에 위치하고 있었습니다. 반드시 본인의 pinentry-mac 프로그램의 위치를 확인해주세요. 확인하는 방법은 매우 간단합니다.

$ which pinentry-mac

GPG Agent가 pinenetry-mac을 사용할 수 있도록 설정 파일에 아래의 내용을 추가해줍니다. 아래 명령어를 사용하면 별도로 설정 파일을 열지 않아도 바로 입력됩니다.

단, 입력 전에 반드시 다시 한번 더 확인하세요! 본인의 pinentry-mac의 위치를 아래의 /opt/homebrew/bin/pinentry-mac 자리에 써줘야 합니다.

$ echo "pinentry-program /opt/homebrew/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf

GPG Agent 재실행하기

설정을 반영해주기 위해 GPG Agent를 재실행합니다.

$ killall gpg-agent

GitHub에 GPG Key 등록하기

로컬에서만 Key를 생성하면 무의미하겠죠. 생성한 GPG Key를 GitHub에 등록해주어야 합니다.

Settings -> SSH and GPG keys 로 이동합니다. 그리고 New GPG key 버튼을 누릅니다. 그럼 아래와 같은 화면이 보일텐데요.

https://user-images.githubusercontent.com/16011260/122662855-3f948480-d1d1-11eb-88b4-8e92f59d4831.png

저 공란에 아까 생성한 GPG Key를 붙여넣기 해줍니다. GPG Key를 얻는 방법은 다음과 같습니다.

$ gpg --armor --export 3AA5C34371567BD2

이렇게 하면, ----BEGIN PGP PUBLIC KEY BLOCK----- 로 시작해서 ----END PGP PUBLIC KEY BLOCK----- 로 끝나는 기나긴 문자열이 출력될텐데요. 문자열의 시작(----BEGIN PGP PUBLIC KEY BLOCK---—)과 끝(----END PGP PUBLIC KEY BLOCK---—) 부분 모두 포함해서 복사합니다. 그리고 위 이미지의 공란에 붙여넣습니다. 이제 Add GPG key 버튼을 누르면 끝입니다.

최초 Commit 하기

이제 커밋을 하게 되면, 최초로 커밋할 때, pinentry-mac의 암호 입력창이 화면에 나타날텐데요. 여기에 우리가 GPG Key 생성하기 파트에서 입력했던 비밀번호를 입력해주면 됩니다. 가장 초기에만 입력해주면 후에는 추가 입력해줄 필요가 없습니다.

주의 사항

만약 위 내용을 잘 읽고 그대로 따라하지 않으셨다면, 에러가 발생할 수도 있습니다. 그럴 땐, 글을 처음부터 하나하나 따라가시면서 명령어를 수행해보시기를 추천드립니다. 그러고서도 해결되지 않으실 땐 댓글이나 이메일 부탁드립니다 🙂

참고

마무리

여기까지 따라오시느라 고생이 많으셨습니다. 만약 이 튜토리얼이 도움이 되셨다면 글 좌측 하단의 하트❤를 눌러주시면 감사하겠습니다.

혹시라도 튜토리얼에 이상이 있거나, 이해가 가지 않으시는 부분, 또는 추가적으로 궁금하신 내용이 있다면 주저 마시고 댓글💬을 남겨주세요! 빠른 시간 안에 답변을 드리겠습니다 😊

반응형