[git] SSH Key로 기기 하나에서 깃허브 여러 계정 사용하기 1 | for windows

gyulhana·2021년 11월 15일
0

- Using Multiple Accounts on VS CODE with SSH Keys

Problem

평소에 쓰는 계정은 바로 단 하나, 그래서 VS CODE에 등록해놓고 편안하게 사용하고 있었다. 여태껏(이라고 쓰고 고작 3개월 반 동안) 별 문제가 된 적은 없었다. 하지만 사이드 프로젝트를 하게 되면서 프로젝트 용 새 계정을 발급 받게 되었는데 이게 바로 재앙의 시작이었다.

Solution

1. 깃허브 계정에 해당하는 SSH key 생성하기

ssh-keygen -t rsa -b 4096 -C "email@email.com"

2. 파일 위치와 key 이름을 설정하기

Generating public/private rsa key pair.
Enter file in which to save the key (/`원하는 경로 입력`/`key파일 이름 입력`):

아무것도 입력하지 않고 넘어가면 C:\Users\사용자 이름에 .ssh폴더가 생성되고 id_rsa라는 이름을 가진 key가 private, public 하나씩 총 2개가 생성된다.

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

pass phrase(비밀번호)를 입력하라고 한다. 하지만 입력하지 않아도 무관하다.
입력하지 않을 거라면 2.에서 enter를 두번 입력하면 된다.

3. Powershell 관리자로 실행하여 ssh-agent를 수동으로 실행시킨다.

  1. 에서 ssh-agent 관련 오류가 생기시는 분들을 위한 해결법! 그래도 다 해보자!
Get-Service ssh-agent


대충 이런 화면을 보게 될 텐데 현재 상태가 멈춰있다는 출력 결과를 볼 수 있다.

Get-Service ssh-agent | Select StartType

StartType이 Disabled로 설정되어 있을 수 있습니다. 요 때, 바로!

Get-Service -Name ssh-agent | Set-Service -StartupType Manual

Manual(수동) 시작으로 바꾸어 주도록 하자.

Start-Service ssh-agent

수동으로 바꿔준 다음에 구동 시작 명령어를 입력하면 된다.

4. 로컬 ssh-agent에 ssh-key 등록

ssh-add /`keyPath 입력`/

ex. ssh-add C:\Users\사용자 이름\'2.에서 입력한 생성된 키파일 이름 입력'.pub
이렇게 하면 경고가 뜰 수도 있긴 하지만 어쨌든 로컬에 ssh key를 등록하는 것까지는 성공이다.

5. config 파일 생성하기


C:\Users\사용자 이름\ 키 파일을 생성한 폴더에 config 파일을 추가하고 위와 같은 형식으로 사용할 계정의 내용들을 입력해주면 된다.

6. 깃허브에 SSH Key 추가하기

깃허브 > 프로필 > 설정 > SSH keys & GPG keys
위의 링크로 접속하여 New SSH key를 추가합니다.


Title에는 원하는 이름 아무거나 입력하고 (대신 분별할 수 있는) Key값에 지금까지 생성한 두 개의 key중 .pub이라고 쓰여있는 public key를 복사해서 입력합니다. 파일을 열 수 없다면 터미널에서 cat ~(파일명).pub을 입력하시면 파일 내용이 출력된다.


만약에 유효하지 않은 키를 입력한 경우 github에서 유효하지 않은 키라는 결과를 반환해주기 때문에 걱정 안 하고 일단 고 해보셔도 됩니다.

여기까지 하면 깃허브와 로컬에 모두 SSH Key 등록이 끝난 것이고 VS CODE에서 사용할 수 있게 된다.

7. SSH Key 사용해보기

만약 이제 해당 계정의 특정 레포지토리를 클론해오고 싶다면 아래와 같은 SSH 코드를 복사해서 가져오면 되는데 여기서 주의할 점은 그대로 복사하면 안 된다는 점이다. 그렇게 했다면 바로 레포지토리 혹은 파일을 찾을 수 없다는 오류가 발생한다.

git clone git@github.com-base:gyulhana/TIL.git

예시로 내가 base라고 적은 자리에는 본인이 config 파일에서 Host에 원하는 이름 설정해둔 것을 입력해야 한다.

정상적으로 cloning이 된다면 계속할 거냐고 터미널 창에 질문이 뜰 텐데 yes라고 입력하고 정상적으로 cloning이 된다면 완성이다.

* 덧붙일 말

하지만 불길하게도 이게 1탄이라는 것은 현재 문제가 발생하고 있는데 해결 못 하고 있기 때문이다. 빠른 시일 내에 해결하여 2탄으로 돌아오도록 하겠다.. 쥬르륵.

profile
친절한 하루를 선물하고 싶은 사람

0개의 댓글