👨‍💻 프로그래밍/기타

Github Commit 할 때 사용하는 GPG Key가 뭘까?

by 개발자 진개미 2025. 9. 28.
반응형


GPG Key란?

OpenPGP Spec을 따르는 암호화 Key입니다. 

 

Standard

OpenPGP Standard

www.openpgp.org

OpenPGP Spec에는 Key, Signature, 암호화 방식 등의 형식, 생명주기를 정의하고 있어 일반적인 RSA Key와는 구분됩니다. 암호화 알고리즘도 여러 가지를 지원합니다.

  • RSA
  • ELGamal
  • DSA
  • ECDH
  • ECDSA
  • EdDSA

(사실 RSA 말고는 들어 본 적도 없습니다...)

 

GNUPG 사이트에 가면 각 OS 별로 GPG Key를 만들 수 있는 CLI를 다운로드 받을 수 있습니다!

 

GnuPG - Download

Note that you may also download the GNU Privacy Guard from a mirror site close to you. See our list of mirrors. The table below provides links to the location of the files on the primary server only. These are the canonical release forms of GnuPG. To use t

www.gnupg.org

gpg --full-generate-key

Github에서 GPG Key의 용도

Github에서는 GPG Key를 Commit이 그 사람이 한게 맞는지 확인하는 용도로 씁니다. GPG Key를 만들어서 이걸로 Commit을 Sign 하면, Github에 사진과 같이 Verified가 표시됩니다.

 

Github도 일반적인 인증/인가에서는 SSH (RSA)를 쓰기도 하지만 GPG Key는 RSA이외의 다른 암호화 알고리즘도 표준적으로 지원하고, 인가에 관한 정보를 내부에 들고 있기도 해서 Commit에서는 GPG Key를 사용한다고 합니다.

 

아래의 방법으로 Github에 GPG Key를 등록해 주면 됩니다.

 

Generating a new GPG key - GitHub Docs

If you don't have an existing GPG key, you can generate a new GPG key to use for signing commits and tags.

docs.github.com


GPG Key를 써야 할까?

GPG Key를 쓰지 않으면 Commit 할 때 이메일을 바꾸는 것 만으로 다른 사람인 것처럼 Commit을 할 수 있게 됩니다. (Author Spoofing)

그래서 많은 사람이 기여하는 Open-Source 프로젝트들이나 민감한 코드들의 경우는 필수라 할 수 있습니다.

하지만! 그냥 내 개인 프로젝트거나 서로 믿는 사람들끼리만 있는 환경이라면? 굳이 이런 절차를 도입하는 거 자체가 낭비고 오버 엔지니어링일 수 있습니다.


반응형