vscode에서 깃 계정 두 개 사용하는 방법

김진주·2025년 6월 19일
0

TJL(Today Jinju Learned)

목록 보기
36/36

SSH 키를 이용하는 방법

이 방법은 각 계정마다 다른 SSH 키를 만들어서, 어떤 저장소(repository)에 접근할 때 어떤 키를 사용할지 설정해주는 방식이야.

계정별 SSH 키 생성:

터미널이나 Git Bash를 열고 각 계정의 SSH 키를 만들어줘.
키 이름은 구분하기 쉽게 지으면 좋아. 예를 들어 id_rsa_personal, id_rsa_work 이런 식으로!

ssh-keygen -t rsa -C "개인 계정 이메일" -f ~/.ssh/id_rsa_personal
ssh-keygen -t rsa -C "회사 계정 이메일" -f ~/.ssh/id_rsa_work

키 생성할 때 비밀번호(passphrase) 설정할 수 있는데, 이건 선택 사항이야.
설정하면 보안은 좋지만, 사용할 때마다 비밀번호를 입력해야 해.


SSH 에이전트에 키 추가:

SSH 에이전트를 실행하고 만든 키들을 추가해줘. 이렇게 해두면 매번 비밀번호를 입력하지 않아도 돼.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_personal
ssh-add ~/.ssh/id_rsa_work

GitHub/GitLab 등에 SSH 키 등록:

각 계정의 GitHub나 GitLab 설정에 들어가서 방금 만든 공개 키(.pub 파일) 내용을 복사해서 등록해줘.
~/.ssh/id_rsa_personal.pub 파일 내용을 개인 계정에,
~/.ssh/id_rsa_work.pub 파일 내용을 회사 계정에 등록하면 돼.


SSH Config 파일 설정:

~/.ssh 폴더에 config 파일을 만들거나 열어서 아래 내용을 추가해줘. (만약 파일이 없으면 새로 만들면 돼!)
이 설정은 특정 호스트(예: github.com)에 접근할 때 어떤 키를 사용할지 Git에게 알려주는 역할을 해.

// config
# 개인 계정 설정
Host github.com-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_personal
    PreferredAuthentications publickey

# 회사 계정 설정
Host github.com-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_work
    PreferredAuthentications publickey

여기서 Host github.com-personal이나 Host github.com-work는 네가 임의로 정하는 별칭이야. 실제 GitHub 주소는 HostName에 쓰는 github.com이지.


각 저장소 Clone 또는 Remote URL 변경:

이제 저장소를 클론할 때 SSH 주소를 사용하는데, 아까 config 파일에 설정한 별칭을 써야 해.
개인 계정 저장소: git clone git@github.com-personal:개인계정아이디/저장소이름.git
회사 계정 저장소: git clone git@github.com-work:회사계정아이디/저장소이름.git

만약 이미 클론해둔 저장소라면 .git/config 파일을 열어서 [remote "origin"] 섹션의 url을 위 형식으로 수정해주면 돼.

이렇게 설정하면 VS Code에서 해당 저장소를 열고 Git 작업을 할 때, 자동으로 설정된 SSH 키를 사용해서 각 계정으로 커밋하고 푸시할 수 있어!


SSH 키 설정 후 사용 방법 자세히 알아보기

자, 아까 SSH 키 만들고, GitHub에 등록하고, ~/.ssh/config 파일까지 다 설정했다고 가정하자! 이제 VS Code에서 이걸 어떻게 활용하는지 보자!

핵심은 각 저장소(Repository)의 원격(Remote) 주소를 설정할 때,
아까 config 파일에 정해둔 별칭(Host Alias)을 사용하는 것이야.
VS Code는 네가 열어둔 프로젝트 폴더 안에 있는 .git/config 파일을 읽어서 어떤 원격 주소를 사용할지 판단하고, Git 명령을 실행할 때 그 주소를 사용해.
그리고 Git은 SSH 설정 파일을 보고 해당 별칭에 맞는 SSH 키를 자동으로 찾아서 인증하는 방식이지!

  1. 새로운 저장소를 클론할 때
    이게 제일 간단해! GitHub나 GitLab 같은 곳에서 저장소 주소를 복사할 때, HTTPS 주소 말고 SSH 주소를 복사해야 해.

예를 들어, 개인 계정의 my-awesome-project 저장소의 SSH 주소가 git@github.com:개인계정아이디/my-awesome-project.git 이렇게 생겼다고 치자.
이걸 그대로 클론하는 대신, 아까 ~/.ssh/config 파일에 설정해둔 개인 계정 별칭 (github.com-personal)을 사용해서 주소를 바꿔주는 거야.
바뀐 주소는 이렇게 되겠지? git@github.com-personal:개인계정아이디/my-awesome-project.git
이제 VS Code 터미널이나 외부 터미널에서 이 주소로 클론하면 돼!

// bash
git clone git@github.com-personal:개인계정아이디/my-awesome-project.git

이렇게 클론하면, 이 저장소의 .git/config 파일에 원격 주소가 git@github.com-personal:개인계정아이디/my-awesome-project.git 이렇게 저장돼.

  1. 이미 클론해둔 저장소의 계정을 변경할 때
    이미 클론해둔 저장소가 있는데, 이걸 다른 계정으로 푸시하고 싶다면 원격 주소를 바꿔주면 돼.

해당 저장소 폴더로 이동: 터미널에서 해당 프로젝트 폴더로 이동해줘.
현재 원격 주소 확인: git remote -v 명령어로 현재 설정된 원격 주소를 확인할 수 있어.
아마 origin이라는 이름으로 HTTPS 주소나 원래 SSH 주소가 설정되어 있을 거야.
원격 주소 변경: git remote set-url 명령어를 사용해서 config 파일에 설정한 별칭을 포함한 새 SSH 주소로 바꿔줘.
예를 들어, origin이라는 이름의 원격 주소를 회사 계정으로 바꾸고 싶다면:

//bash
git remote set-url origin git@github.com-work:회사계정아이디/저장소이름.git

만약 원격 주소가 여러 개라면 (origin 말고 다른 이름도 있다면) 바꿔주고 싶은 원격 이름으로 origin 대신 써주면 돼.
이렇게 하면 이 저장소의 .git/config 파일에 원격 주소가 업데이트돼.

  1. VS Code에서 Git 사용하기
    자, 이제 설정이 끝난 저장소를 VS Code에서 열어봐!

VS Code의 소스 제어(Source Control) 탭에서 평소처럼 작업하면 돼. 파일을 수정하고, 스테이징하고, 커밋하고...
그리고 푸시(Push)나 풀(Pull)을 할 때, VS Code는 자동으로 해당 저장소의 .git/config 파일에 설정된 원격 주소를 사용해.
이 원격 주소가 아까 우리가 github.com-personal이나 github.com-work 같은 별칭으로 설정해둔 주소잖아?
Git은 이 별칭을 보고 ~/.ssh/config 파일을 확인해서, 해당 별칭에 연결된 IdentityFile (SSH 키 파일)을 찾아서 사용하게 돼!
따라서 네가 별도로 계정을 선택하거나 로그인할 필요 없이, 어떤 저장소를 열었는지에 따라 자동으로 해당 저장소에 연결된 계정으로 Git 작업이 이루어지는 거야! ✨
4. 현재 사용 중인 계정 확인하기
혹시 이 저장소가 어떤 계정으로 설정되어 있는지 헷갈릴 때는 다음 방법으로 확인할 수 있어.

터미널에서 확인: 해당 저장소 폴더에서 git config user.email 명령어를 실행하면 돼. 이 명령어는 해당 저장소의 로컬 Git 설정에 저장된 이메일을 보여줘. 보통 SSH 키 설정과 함께 로컬 .git/config 파일에 user.email과 user.name도 해당 계정 정보로 설정해두는 경우가 많거든.

.git/config 파일 직접 확인: 프로젝트 폴더 안에 숨겨진 .git 폴더가 있어. 그 안에 config 파일을 텍스트 에디터로 열어보면 [remote "origin"] 섹션에 설정된 url을 직접 확인할 수 있지. 이 URL에 네가 설정한 별칭(github.com-personal 또는 github.com-work)이 들어있는지 보면 돼!
이렇게 SSH 설정을 해두면 VS Code에서 여러 프로젝트를 열어두고 작업할 때, 각 프로젝트가 알아서 정해진 계정으로 Git 작업을 처리하니까 엄청 편해질 거야! 😊

profile
진주링딩동🎵

0개의 댓글