목차
개요
보통 맥북에서 Git을 사용해서 GitHub Repository에 push를 하면, GitHub의 Verified 표시를 얻을 수 없습니다. 그런데 상황에 따라 GitHub의 branch 보호 전략에 Verified 를 요구되기도 하는데요. 어쩌면 좋을까요?
위 그림의 빨간색 표시가 된 것처럼 방법이 없는게 아닙니다! 다만 설정을 조금 해줘야 합니다. 😅
GPG 생성
우선 GitHub의 문서 중 Generating a new GPG key을 살펴봅시다.
문서에서는 GPG command line tools 다운 받아서 설치하라고 했지만 저는 brew
를 이용하도록 하겠습니다. [참고]
brew install gnupg pinentry-mac
설치가 완료되면 이제 생성해보도록 하죠.
gpg --full-generate-key
아래의 그림처럼 설정하는 것을 권장합니다.
- (1) RSA and RSA
- keysize:
4096
- valid:
0
(key does not expire) - confirm valid:
y
- Real name: 본인 이름 또는 닉네임
- Email address: GitHub에서 사용중인 이메일
- confirm:
O
(Okay)
아래 그림에서는 일반적인 암호(Password)라고 생각하고 입력해주세요. 나중에 딱 한 번 입력하게 됩니다. (1)
gpg --list-secret-keys --keyid-format LONG
위 명령어를 입력하면 아래와 같은 결과가 나오고, 빨간색 네모 부분(16자리 숫자 + 문자)를 복사해둡니다. (2)
gpg --armor --export COPIED_GPG_KEYID
결과값을 모두 복사해둡니다. (3)
-----BEGIN PGP PUBLIC KEY BLOCK-----
HAVE TO COPY ALL
-----END PGP PUBLIC KEY BLOCK-----
GPG key GitHub 등록
GitHub의 SSH and GPG keys 메뉴를 보면 아래와 비슷하게 나올겁니다. (저는 사용 중인 SSH keys와 GPG keys가 하나씩 있습니다.) New GPG key를 클릭하여 새로운 key를 등록하도록 합니다. [참고]
위 그림의 빈 칸에 터미널에서 복사한 Public key(3)를 넣어주고 등록해주세요. 그러면, 아래와 같이 새롭게 추가된 GPG key를 확인 하실 수 있습니다.
추가 설정
GitHub 문서에 따르면, 명령어 하나만 입력하면 끝나는 것 같지만 몇 가지 더 설정을 해줘야 합니다.
우선 아래와 같이 Git global 세팅을 해줍니다. (GPG key ID가 필요합니다. (2) gpg --list-secret-keys --keyid-format LONG
)
git config --global user.name "YOUR_NAME"
git config --global user.email "YOUR_EMAIL"
git config --global core.precomposeunicode true
git config --global core.quotepath false
git config --global user.signingkey COPIED_GPG_KEYID
git config --global gpg.program gpg
git config --global commit.gpgsign true
여기서 git commit
을 시도하면 문제가 발생하는데요. 해결 방법은 여기를 참고하여 아래와 같이 입력해주세요.
echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
killall gpg-agent
그 후에 다시 git commit
을 시도하면 아래와 같이 Pinentry Mac 화면이 나타납니다.
위에서 암호처럼 입력했던 (1)을 입력하고, Save in Keychain 을 클릭해 주세요. 로컬에 저장되어 다시는 이 창을 볼 일 없이 편하게 사용할 수 있습니다.
마무리
이제 모든 설정이 다 끝났습니다! GitHub에서 push된 모든 commit이 Verified 된 것을 확인하실 수 있습니다.