티스토리 뷰

git

git commit 을 gpg 로 암호화하기

주먹불끈 2019. 1. 4. 08:59

개요

 

- 원문 링크: https://help.github.com/articles/managing-commit-signature-verification/

- git commit tag sign 하여, Github push, merge 될때에 출처를 신뢰할 있도록 해준다. 

 

- gpg 다운로드 하기: https://www.gnupg.org/download/index.html

- 비동기 암호화의 signature 기능을 이용하는 것이다.

 

전자 서명

 

- git commit 전자서명에 한해서만 설명해본다.

- 세세한 사항은 오류가 있을 있으니 개념이해로만

 

1) public / private key 생성하고, public key Github 알려준다.

2) commit 또는 tag 내용을 SHA256 같은 해시함수로 암호화 해준다.

- 해시함수는 어떠한 크기의 데이터든 같은 크기의 메시지로 만들어준다.

- 예를 들면 영화 한편을 256 비트의 메시지로 바꿔준다.

해시함수의 결과를 private key 암호화 해준다.

3) commit 최종암호화된 signature Github 전달한다.

- Signature commit 해시함수 먹이고 private key 먹인것

4) Github 값을 비교하여 같은지 verify 한다.

- commit 해시함수 먹인

- signature public key  복호화  해준

 

 

프로세스

 

1. 컴퓨터에 public key / private key 있어야 한다.

 

1) 있는지 확인하기

 


 

2) 없거나 있어도 새로 만들고 싶다면 생성하기

 

- 암호화 방법 설정

- 유효기간 설정

- 이름, 이메일, 코멘트 설정

- Passphrase - 사용할 암호 설정 (실제 key 사용시에 수시로 물어봄)

 



 

2. 컴퓨터에 있는 key public key export 하기

 

1) 생성된 key key ID 알아보기

 

- 아래 노란색이 key ID 이다.



 

2) public key ASCII 형대로 export 해주기

 


 

- export 값을 화면에 뿌려줄거다. 이걸 전부 복사해둔다.

 

-----BEGIN PGP PUBLIC KEY BLOCK----- 로 시작해서

-----END PGP PUBLIC KEY BLOCK----- 끝나는 모든 내용

 

3. 깃헙에 public key알려주기

 

1) Commit 해싱하고, private key 암호화한 Signature 만들고

2) Commit Signature 깃헙에 보내면

3) 깃헙은 이렇게 제공받은 public key Signature 복호화한다.

 

Github >> Setting >> SSH and GPG keys >> New GPG key 들어가서

Public key 붙여넣고 Add GPG key 하면 된다.

 


 

 

4. 로컬의 git 에도 어떤 key 사용할지 알려줘야 한다.

 

Key ID 아래와 같이 설정해준다. .gitconfig 바로 넣어줘도 되겠다.

 


 

 

사용해보기

 

무조건 자동으로 싸인하는 방법

 

git config commit.gpgsign true

로컬 저장소에서 무조건 싸인

git config --global commit.gpgsign true.

모든 로컬 저장소에 적용

 

Commit 할때마다 싸인하는 방법

 


 

- 이렇게 하면 passPhrase 물어볼 것임. Gpg4Win 쓰면 이것도 안할 있음 (근데 보안인데 해주지 )

 

 

깃헙에서 확인

 

싸인한 commit (또는 tag) 아래와 같이 보인다.

 


 


반응형

'git' 카테고리의 다른 글

.git - 쩜깃의 이해  (0) 2019.01.24
git pull --rebase 를 쓰자  (4) 2019.01.15
엉뚱한 branch에서 작업하고 commit 해버렸다면  (0) 2018.07.04
github 에 pull request 하기  (0) 2018.07.04
node project 를 github에 올려보자  (2) 2018.05.19
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함