๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป DEV/GitHub

[Github] GPG Keys ์ƒ์„ฑ & ๋“ฑ๋กํ•˜๊ธฐ

by Rising Oneโ˜… 2025. 5. 15.
728x90
๋ฐ˜์‘ํ˜•
SMALL

Git ๋Œ€ํ‘œ์ด๋ฏธ์ง€

 

 

 

์ ‘๊ทผ (์š”์•ฝ)

์ด์ „ ๊ธ€์—์„œ ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ + Tag ์ƒ์„ฑ + Release ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š”๋ฐ, GPG Keys ๊ฐ€ ์—†์–ด์„œ Tags ํƒญ์— 'verified'๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฒƒ์„ ํ•ด์†Œํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ GPG Keys๋ฅผ ์ƒ์„ฑํ•˜๊ณ  Github repo์— ์ •์ƒ์ ์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ์ ˆ์ฐจ๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

 

  1. GPG Key ์ƒ์„ฑ (1) gnupg ํŒจํ‚ค์ง€ ์„ค์น˜

- (mac) ~$ brew install gnupg

 

  2. GPG Key ์ƒ์„ฑ (2) Key ์ƒ์„ฑํ•˜๊ธฐ

- ~$ gpg --full-generate-key

- (1) what kind of key you want(ํ‚ค ์ข…๋ฅ˜) (2) keysize(ํ‚ค ๊ธธ์ด)

- (3) specify how long(์œ ํšจ๊ธฐ๊ฐ„) (4) name / email / comment (๊ฐœ์ธ์‹ ์›)

- ์ƒ์„ฑ ์ดํ›„, fingerprint / key Id (ํ™•์ธ๋ฒ•)

 

  3. Github repo ๋“ฑ๋กํ•ด์ฃผ๊ธฐ

- ์›น ๊ฒฝ๋กœ ์ด๋™

- ๋„ฃ์–ด์ค˜์•ผํ•˜๋Š” ๊ฐ’ ์ถœ๋ ฅ : gpg --armor --export [fingerprint]

 

  4. Git ์„ค์ • (์ด์ œ๋ถ€ํ„ฐ '- S' ์„œ๋ช… ์˜ต์…˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ => ๋Œ€๋ฌธ์ž)

- ~$ git config --global user.signingkey [fingerprint]

- ~$ git commit -S -m "Signed Commit!!"

- (ํ•ญ์ƒ ์„œ๋ช… ์„ค์ •) ~$ git config --global commit.gpgsign true 


๋ฐฉ๋ฒ•

   1. GPG Key ์ƒ์„ฑ (1) gnupg ํŒจํ‚ค์ง€ ์„ค์น˜

(mac) ~$ brew install gnupg

 

## gnupg ํŒจํ‚ค์ง€ ์„ค์น˜
~$ brew install gnupg

 

   2. GPG Key ์ƒ์„ฑ (2) Key ์ƒ์„ฑํ•˜๊ธฐ

- ~$ gpg --full-generate-key
- (1) what kind of key you want(ํ‚ค ์ข…๋ฅ˜) (2) keysize(ํ‚ค ๊ธธ์ด)
- (3) specify how long(์œ ํšจ๊ธฐ๊ฐ„) (4) name / email / comment (๊ฐœ์ธ์‹ ์›)
- ์ƒ์„ฑ ์ดํ›„, fingerprint / key Id (ํ™•์ธ๋ฒ•)

 

what kind of key you want(ํ‚ค ์ข…๋ฅ˜)
(2) keysize(ํ‚ค ๊ธธ์ด)
(3) specify how long(์œ ํšจ๊ธฐ๊ฐ„)
(4) name / email / comment (๊ฐœ์ธ์‹ ์›)

 

< ์ƒ์„ฑ ์ดํ›„ >

(1) fingerprint ์ถœ๋ ฅํ•ด๋ณด๊ธฐ

## fingerprint ์ถœ๋ ฅ
~$ gpg --fingerprint

 

(2) Key ์กฐํšŒ & Key Id ์กฐํšŒ

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

 

(3) PGP PUBLIC KEY BLOCK ์ถ”์ถœ  → github ์— ๋“ฑ๋กํ•ด์ค˜์•ผํ•˜๋Š” Input ๊ฐ’

~$ gpg --armor --export [fingerprint]

 

 

   3. Github repo ๋“ฑ๋กํ•ด์ฃผ๊ธฐ

- ์›น ๊ฒฝ๋กœ ์ด๋™ : 

ํ”„๋กœํ•„ → Settings
(์ขŒ์ธก ํƒญ → SSH and GPG Keys → New GPG key)
์ด์ „ ๋‹จ๊ณ„์—์„œ ์ถ”์ถœํ•œ PGP PUBLIC KEY BLOCK ๋ฉ์–ด๋ฆฌ ๋ณต์‚ฌ + ๋ถ™์—ฌ๋„ฃ๊ธฐ

 

   4. Git ์„ค์ • (์ด์ œ๋ถ€ํ„ฐ '- S' ์„œ๋ช… ์˜ต์…˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ => ๋Œ€๋ฌธ์ž)

- ~$ git config --global user.signingkey [fingerprint]
- ~$ git commit -S -m "Signed Commit!!"
- (ํ•ญ์ƒ ์„œ๋ช… ์„ค์ •) ~$ git config --global commit.gpgsign true 

 

(1) Commit์— ์„œ๋ช…์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” .gitconfig์— ์„œ๋ช… ์ •๋ณด๋ฅผ ๋„ฃ์–ด์•ผํ•จ. (์ง์ ‘ ์ˆ˜์ • X)

~$ git config --global user.signingkey [fingerprint]

 

(2) ์ดํ›„๋ถ€ํ„ฐ, '-S (๋Œ€๋ฌธ์ž)' ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด ์„œ๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

~$ git commit -S -m "Signed Commit!!"

 

(3) Always ์„œ๋ช…๋˜๋„๋ก ์„ค์ • 

~$ git config --global commit.gpgsign true

 

728x90
๋ฐ˜์‘ํ˜•
LIST

๋Œ“๊ธ€