1. 설명
한 컴퓨터에 한 개의 계정만 사용하는 경우에는 git config의 계정 정보를 global로 설정하면 쉽게 사용이 가능했다.
하지만, 한 컴퓨터에 여러 개의 계정을 사용하는 경우 Private한 Repository의 경우 Clone하는 데 어려움이 생긴다.
이를 편하게 관리하기 위해서는 SSH key를 통해 인증하는 방식을 사용하면 좋다.
플로우를 간단히 설명하면 다음과 같다.
- 계정별로 ssh-key를 생성한다.
- 원격저장소(ex. GitHub, GitLab…)의 Setting에서 생성한 ssh 공개키를 입력한다.
- ssh로 클론한다.
2. 과정
1) SSH key 발급 받기
cd ~/.ssh
ssh-keygen -t rsa -C "[주석]" -f "id_rsa_[이름]"-t rsa: 생성할 키의 타입을 RSA 암호화 알고리즘을 사용하여 키를 생성한다.-C "[주석]": 키를 식별하는데 주석을 추가한다.-f "[생성할 ssh key 이름]": 생성할 ssh key 이름을 설정한다.
편하게 주석과 이름을 계정으로 통일해도 좋다.(ex. ssh-keygen -t rsa -C "user123" -f "id_rsa_user123)
이 뒤로 다음과 같은 문구가 뜨는데 Enter를 계속 누르면 된다.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
2) SSH Agent에 SSH key 등록하기
eval "$(ssh-agent -s)" # ssh-agent 시작
ssh-add ~/.ssh/id_rsa_user123 # ssh key 등록잘 등록 되었다면 다음과 같이 나타난다.
Identity added: id_rsa_user123 (user123)3) GitHub에 SSH 공개키 만들기
먼저 로컬에서 생성한 ssh 공개키를 복사한다. 다음 명령어를 입력한 후 나온 값을 복사한다.
cat id_rsa_user123.pub내 계정의 [Setting] > [SSH and GPG keys] > [New SSH key] 클릭

Title을 입력하고 Key에 복사한 공개키를 붙여넣기 한다.

4) Config 등록하기
터미널에서 입력
cd ~/.ssh
vi configvim으로 편집할 때에는 i(INSERT 모드) → 편집 후 ESC → :wq를 통해 저장 후 나간다.
입력할 값은 다음과 같다.
Host github.com-user123
HostName github.com
User user123
IdentityFile ~/.ssh/id_rsa_user123
vscode에서 관리할 때
[F1] > [Remote-SSH: Connect to Host…] > [SSH 호스트 구성] > [.ssh 경로 선택] 클릭해서 나온 파일을 편집하면 된다.
5) SSH 연결 테스트
ssh -T git@github-user123처음 연결하게 되면 다음과 같은 문구가 나오는데 yes라고 입력하면 된다.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: yes
연결에 성공하면 다음과 같은 문구가 출력된다.
Hi user123! You've successfully authenticated, but GitHub does not provide shell access.
6) Repository Clone 하기
user123 계정 github의 “Test”라는 Repository를 가져오려고 한다. 해당 Repository에서 [Code] 클릭 후 [SSH] 탭을 눌러 명령어를 복사하면 다음과 같다.
git@github.com:user123/TEST.git
여기에서 @뒤의 github.com을 4번에서 작성한 Host이름 github.com-user123로 바꿔주면 된다.
git@github.com-user123:user123/TEST.git이후 clone된 Repository 폴더의 local config를 해당 계정으로 바꿔주면 된다.
git config user.email user123@gmail.com참고 자료
Reference