티스토리 뷰
개요
- 원문 링크: 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
- 잡학툰
- postgres
- 2023
- golang
- Gin
- Shortcut
- Bug
- 체호프
- strange
- 독서후기
- 영화
- 클린 애자일
- go
- 인텔리제이
- agile
- solid
- OpenAI
- bun
- 제이펍
- github
- websocket
- JIRA
- pool
- notion
- API
- folklore
- intellij
- 노션
- 독서
- ChatGPT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |