GPG로 Git 커밋을 검증하는 방법: 단계별 가이드

발행: (2025년 12월 29일 오후 02:37 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

How to Verify Your Git Commits with GPG: A Step-by-Step Guide 커버 이미지

오픈소스와 협업 개발 세계에서는 정체성이 전부입니다. 리눅스 커널에서 torvalds의 커밋을 볼 때, 그것이 실제 리누스 토르발스인지, 아니면 사칭자인지 어떻게 알 수 있을까요?
답은 GPG 서명입니다.

GPG(GNU Privacy Guard) 키로 커밋에 서명하면, 해당 코드가 본인으로부터 왔으며 변조되지 않았음을 암호학적으로 검증할 수 있습니다. GitHub(및 GitLab)은 이를 녹색 “Verified” 배지로 표시해 줍니다.

1. Install GPG

macOS (Homebrew)

brew install gnupg

Linux (Debian/Ubuntu/Pop!_OS)

sudo apt install gnupg

Windows

**Gpg4win**을 다운로드하고 설치합니다.

2. Generate a GPG Key

gpg --full-generate-key

다음 항목들을 입력하라는 프롬프트가 나타납니다:

  • 키 종류: (1) RSA and RSA (기본값)
  • 키 크기: 4096
  • 만료 기간: 0 (키가 만료되지 않음) – 정책에 따라 조정하세요
  • 실명: 전체 이름 입력
  • 이메일 주소: GitHub에서 인증된 이메일과 일치해야 함
  • 암호구문: 개인 키를 보호할 강력한 비밀번호

3. Get Your Key ID

비밀 키를 나열하여 긴 형식의 Key ID를 확인합니다:

gpg --list-secret-keys --keyid-format LONG

예시 출력:

sec   rsa4096/3AA5C34371567BD2 2024-01-01 [SC]

uid                 [ultimate] John Doe 

위 예시에서 **3AA5C34371567BD2**가 사용할 Key ID입니다.

4. Tell Git About Your Key

전역으로 서명 키를 설정합니다:

git config --global user.signingkey 3AA5C34371567BD2

(3AA5C34371567BD2를 실제 Key ID로 교체하세요.)

모든 커밋에 자동 서명을 활성화합니다(권장):

git config --global commit.gpgsign true

5. Add Your Public Key to GitHub

  1. 공개 키를 내보냅니다:

    gpg --armor --export 3AA5C34371567BD2
  2. BEGINEND 라인을 포함한 전체 출력을 복사합니다.

  3. GitHub에서 Settings → SSH and GPG keys → New GPG key 로 이동해 키를 붙여넣고 저장합니다.

6. Verify It Works

서명된 커밋을 생성합니다:

git commit -m "My first signed commit"

커밋을 GitHub에 푸시하면, 리포지토리 히스토리에서 커밋 옆에 Verified 배지가 표시됩니다.

Verified 배지 예시

Troubleshooting

  • “Unverified” 배지: git config user.email에 설정된 이메일이 GPG 키에 포함된 이메일과 일치하는지, 그리고 해당 이메일이 GitHub 계정 설정에서 인증되었는지 확인하세요.
Back to Blog

관련 글

더 보기 »

내 GitHub에 숨겨진 보물

앱에 대한 아이디어가 있어! 오랫동안 나는 사이드 프로젝트를 일회성 베팅 시리즈처럼 대했어. 컴퓨터 앞에 앉아 몇 시간씩 작업하고 뭔가를 만들었어.