Github Verified Commit

둜컬 ν™˜κ²½μ—μ„œ μƒμ„±ν•œ GPG(GNU Privacy Guard) ν‚€λ₯Ό μ΄μš©ν•΄ 컀밋에 μ„œλͺ…ν•˜κ³ , GitHubμ—μ„œ Verified λ”±μ§€λ₯Ό λ°›κΈ° μœ„ν•œ μ„€μ • 방법을 μ•ˆλ‚΄ν•œλ‹€.

Verified Commit

1. GnuPG μ„€μΉ˜

GPG μ•”ν˜Έ μž…λ ₯을 μœ„ν•œ GUI ν”„λ‘¬ν”„νŠΈλ₯Ό μ œκ³΅ν•˜λŠ” pinentry-mac을 λ¨Όμ € μ„€μΉ˜ν•œλ‹€.

2. GPG ν‚€ 생성

μ•„λž˜ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ—¬ GPG ν‚€λ₯Ό μƒμ„±ν•œλ‹€.

λͺ…λ Ήμ–΄ μ‹€ν–‰ ν›„ λ‚˜νƒ€λ‚˜λŠ” ν”„λ‘¬ν”„νŠΈμ—μ„œ λ‹€μŒ μ˜΅μ…˜μ„ μˆœμ„œλŒ€λ‘œ μ„ νƒν•œλ‹€.

  • ν‚€ μ’…λ₯˜: (1) RSA and RSA

  • ν‚€ μ‚¬μ΄μ¦ˆ: 4096

  • ν‚€ 유효 κΈ°κ°„: 0 (key does not expire)

  • μ‚¬μš©μž 정보: 이름(Real name)κ³Ό 이메일 μ£Όμ†Œ(Email address) μž…λ ₯

    • 이메일은 GitHub 계정과 λ°˜λ“œμ‹œ 일치

μ˜΅μ…˜ 섀정을 마치면 ν‚€λ₯Ό λ³΄ν˜Έν•˜κΈ° μœ„ν•œ μ•”ν˜Έλ₯Ό μž…λ ₯λ°›λŠ”λ°, 이 μ•”ν˜ΈλŠ” 컀밋 μ„œλͺ… μ‹œ μ‚¬μš©λœλ‹€.

3. μƒμ„±λœ GPG ν‚€ ID 확인

Git이 컀밋에 μ„œλͺ…ν•  λ•Œ μ‚¬μš©ν•˜κΈ° μœ„ν•œ μƒμ„±λœ GPG ν‚€μ˜ IDλ₯Ό ν™•μΈν•œλ‹€.

μœ„μ— κ°’ 쀑 A둜 μ‹œμž‘ν•˜λŠ” ν‚€κ°€ μžˆλŠ” 곳이 GPG Key IDλ‹€.

4. Git μ„€μ •

GPG μ„œλͺ…을 μ‚¬μš©ν•˜λ„λ‘ μ„€μ •ν•˜κΈ° μœ„ν•΄, .gitconfig νŒŒμΌμ— μ•„λž˜ λ‚΄μš©μ„ μΆ”κ°€ν•œλ‹€.

signingkeyμ—λŠ” μœ„μ—μ„œ ν™•μΈν•œ GPG ν‚€ IDλ₯Ό μž…λ ₯ν•œλ‹€.

5. GPG Agent μ„€μ •

pinentry-mac을 μ‚¬μš©ν•˜λ„λ‘ GPG Agent 섀정을 μΆ”κ°€ν•˜κ³  Agentλ₯Ό μž¬μ‹œμž‘ν•œλ‹€.

6. GitHub에 GPG κ³΅κ°œν‚€ 등둝

λ‘œμ»¬μ—μ„œ μƒμ„±ν•œ GPG ν‚€μ˜ κ³΅κ°œν‚€λ₯Ό GitHub 계정에 λ“±λ‘ν•œλ‹€.

κ³΅κ°œν‚€ 확인

μ•„λž˜ λͺ…λ Ήμ–΄λ‘œ κ³΅κ°œν‚€λ₯Ό 터미널에 좜λ ₯ν•œλ‹€.

λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν•˜μ—¬ 좜λ ₯된 -----BEGIN PGP PUBLIC KEY BLOCK-----λΆ€ν„° -----END PGP PUBLIC KEY BLOCK-----κΉŒμ§€μ˜ λ‚΄μš©μ„ λͺ¨λ‘ λ³΅μ‚¬ν•œλ‹€.

ν‚€ 등둝

GitHub μ„€μ •μ˜ Settings > Access > SSH and GPG keys νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜μ—¬ New GPG keyλ₯Ό ν΄λ¦­ν•˜κ³ , λ³΅μ‚¬ν•œ κ³΅κ°œν‚€λ₯Ό λΆ™μ—¬λ„£μ–΄ λ“±λ‘ν•œλ‹€.

7. 컀밋 확인

λͺ¨λ“  섀정이 μ™„λ£Œλ˜λ©΄, 졜초 컀밋 μ•”ν˜Έ μž…λ ₯ 이후 μƒμ„±ν•˜λŠ” 컀밋은 μžλ™μœΌλ‘œ μ„œλͺ…λ˜λ©° GitHubμ—μ„œ Verified둜 ν‘œμ‹œλœλ‹€.(μ•”ν˜ΈλŠ” GPG ν‚€ 생성 μ‹œ μ„€μ •ν•œ μ•”ν˜Έ)

GPG μ„œλͺ… μ—λŸ¬

컀밋 μ‹œ error: gpg failed to sign the data 와 같은 μ—λŸ¬κ°€ λ°œμƒν•˜λ©΄ GPG ν‚€ μ‹ λ’°λ„λ‚˜ pinentry μ„€μ • 문제일 수 μžˆλ‹€.

1. GPG ν‚€ 확인 및 git에 λ“±λ‘λœ ν‚€ 일치 μ—¬λΆ€ 확인

λ¨Όμ € GPG ν‚€κ°€ μ˜¬λ°”λ₯΄κ²Œ μ„€μ •λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•œλ‹€.

2. ν•΄λ‹Ή 킀에 λŒ€ν•œ μ‹ λ’° μˆ˜μ€€μ„ ultimate둜 μˆ˜λ™ μ„€μ •

GPG 킀에 λŒ€ν•œ μ‹ λ’° μˆ˜μ€€μ„ ultimate으둜 μˆ˜λ™ μ„€μ •ν•œλ‹€.

GPG ν”„λ‘¬ν”„νŠΈκ°€ λ‚˜νƒ€λ‚˜λ©΄ trustλ₯Ό μž…λ ₯ν•˜κ³ , μ‹ λ’° μˆ˜μ€€μ„ 5둜 μ„ νƒν•œ λ’€ quit둜 λΉ μ Έλ‚˜μ˜¨λ‹€.

3. GPG Agent μž¬μ„€μ •

pinentry 경둜λ₯Ό λ‹€μ‹œ μ„€μ •ν•˜κ³  Agentλ₯Ό μž¬μ‹œμž‘ν•œλ‹€.

μœ„μ˜ 절차λ₯Ό λͺ¨λ‘ μˆ˜ν–‰ν•œ λ’€ λ‹€μ‹œ 컀밋을 μ‹œλ„ν•˜λ©΄ λ‹€μ‹œ μ •μƒμ μœΌλ‘œ Verified 컀밋이 κ°€λŠ₯ν•΄μ§„λ‹€.

Last updated