Git ssh key 생성부터 GitHub repo clone 까지

혜진 조·2022년 12월 2일

목록 보기
3/5

개발일을 시작한지 어느덧 7개월차.
하지만 아직도 git 사용은 서투르기만 하다.
입사 후 처음 git ssh key를 생성해보고, 생성한 key를 가지고 private한 회사 프로젝트 repo를 클론해 작업을 시작했었는데 이 과정이 그 당시에 상당히 어렵고 까다로웠었다.
얼마전 새로운 분이 입사 하게 되어 이 부분을 내가 도와주게 되어주면서,
드디어 git ssh key생성과 이를 통한 repo clone까지의 과정이 확실히 이해가 되어 이렇게 정리를 하려고 한다.

요즘 내 아킬레스건이라고 생각하는 git과 터미널 공부를 하면서 자신감이 많이 상승하고 있다.
어렵다고 피하기 보다 부딪쳐서 배우려는 나의 자세에 칭찬을 해주고 싶다.
그 당시에는 아무리 쳐다봐도 이해가 되지 않던 것이
7개월이 지난 지금은 너무 쉽게 이해되는 이 상황이 신기하다.


ssh 키를 생성하는 이유

ssh: Secure Shell의 약자로 두 컴퓨터 간 통신을 할 수 있게 해주는 하나의 protocol이다.
protocol이란 서로다른 통신 장비간 주고 받는 데이터의 양식과 규칙을 말한다.

인터넷 연결만 되어있어도 내 컴퓨터의 terminal을 통해 다른 지역에 있는 컴퓨터 혹은 서버를 관리할 수 있게 해주고, 파일도 공유할 수 있다.

ssh를 이용한 통신은 client(host에 접속하려는 컴퓨터)와 host(remote 접속 대상)의 통신이 암호화 되어있다. 모든 데이터가 암호화 되어 전송되기 때문에 굉장히 안전하다는 점이 SSH 가 갖는 가장 큰 장점이며, 널리 사용 되어지고 있는 이유이다.

ssh key 생성방법(깃헙 계정 연동 목적)

ssh key 존재 유무 확인 가능

$ ls -al ~/.ssh

먼저 ~/.ssh 디렉터리로 이동해서 ls를 실행해 id_ed25519와 id_ed25519.pub 혹은 id_rsa와 id_rsa.pub 파일쌍이 있는지 확인해본다. 이 파일이 있다면 이미 키를 생성했던 적이 있는 것.
(하나의 ssh key를 생성하면 private 와 public key가 쌍으로 생성된다.)

ssh key 생성

$ ssh-keygen -t ed25519 -C "your_email@example.com"

ed25519 암호화 방식 권장하나,
레거시 시스템 등으로 인한 ed25519 불가 시 rsa사용

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

기본값으로 저장 시 엔터

// 여기서 Enter 치면 기본값인 id_ed25519 로 저장되며
// 무언가 적으면 그걸로 저장됨 여기선 "TEST"라는 이름으로 저장해보겠다.
// /Users/mac/.ssh/TEST 경로까지 잘 적어준다

Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/mac/.ssh/id_ed25519): /Users/mac/.ssh/TEST

ssh 키 추가 비밀번호 지정(github 권장사항)


Enter passphrase (empty for no passphrase):
Enter same passphrase again:

생성완료

Your identification has been saved in TEST
Your public key has been saved in TEST.pub
The key fingerprint is:
SHA256:5gfVjWm45ZxgKGuCeA8ohuxs8MFDr8/DRFSNYIX/fB0 whgpwls210@gmail.com
The key's randomart image is:
+--[ED25519 256]--+
|    o=oo         |
|   .o . .. o +   |
|  .. .. . = * .  |
|o= o. .o o BE.   |
|*oB.o ooS ..+.   |
|*o *.o oo.. .    |
| +oo.   ...      |
|.  oo    .       |
|    o.           |
+----[SHA256]-----+

생성된 키 확인

$ ls -al
$ cat id_ed25519        #개인키
$ cat id_ed25519.pub    #공개키

Github SSH 키 등록하기

1. 공개키(~.pub) 내용 복사

#macOs
$ pbcopy < ~/.ssh/id_ed25519.pub

#windows
$ clip < ~/.ssh/id_ed25519.pub

2. 오른쪽 상단 프로필 - Settings - 왼쪽 사이드 메뉴 SSH and GPG keys - New SSH key

3. 타이틀, 복사한 공개키 등록

SSH 접속 설정

~/.ssh/config 파일 수정(파일이 없다면 생성)
계졍별 ssh 설정

$ vi ~/.ssh/config

# personal github 1
Host TEST
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/TEST
  
# personal github 2
Host 사용할 이름2
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/id_ed25519

# company github
Host 사용할 이름3
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/id_rsa

ssh 접속 테스트

# git@github.com -> git@"github host name"
$ ssh -T git@사용할 이름1 # 개인
$ ssh -T git@사용할 이름2  # 개인2
$ ssh -T git@사용할 이름3    # 회사

Github 저장소 클론

👑 clone 할 때 github.com 대신 Host 에 지정한 이름("TEST")을 넣어주면 됩니다.

# git clone git@github.com:organization-name/repo.git

$ git clone git@TEST:RootCho/Study.git

내 컴퓨터에 SSH 키를 생성하여 나의 Public Key 를 host 의 인가 목록에 추가해 자동으로 나를 인증하는 방법입니다. 이 방법을 이용하면 해당 Public Key 와 매칭되는 Private Key 가 존재하는 나의 컴퓨터를 사용하는 한 비밀번호 없이 인증이 가능합니다.

참고 사이트

https://medium.com/@jamessoun93/ssh%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-87b58c521d6f

https://www.lainyzine.com/ko/article/creating-ssh-key-for-github/

https://www.lesstif.com/gitbook/github-ssh-129008374.html

profile
나를 믿고 한 걸음 한 걸음 내딛기! 🍏

0개의 댓글