여러개의 GitHub 계정을 사용해야 할 때 (Window환경)
Visual Studio Code에서 여러 개의 GitHub 계정과 연동하는 방법에 대해 자세히 설명하겠습니다. 이 글에서는 Windows 환경에서 Python의 가상 환경(venv)을 사용하는 예제를 포함합니다. 각 단계를 따라할 수 있도록 명령어와 설명을 제공하겠습니다.
사전준비 ssh 확인
Windows에는 기본적으로 SSH 클라이언트가 포함되어 있습니다. Windows 10 버전 1809 이후부터는 OpenSSH 클라이언트가 기본적으로 설치되어 있어, PowerShell이나 명령 프롬프트에서 ssh 명령어를 사용할 수 있습니다. SSH가 설치된 분은 0번 사전준비 단계는 건너 뛰어도 됩니다.
STEP 0.[사전준비] SSH 클라이언트 확인 방법
- PowerShell 또는 명령 프롬프트 열기.
- 다음 명령어 입력:
bash
ssh
- SSH 클라이언트가 설치되어 있으면 사용 방법이 출력됩니다.
STEP 0-1. SSH 클라이언트가 없는 경우
만약 ssh 명령어가 인식되지 않으면, 다음 방법으로 설치할 수 있습니다.
[OpenSSH 클라이언트 설치 방법]
- 설정 열기: Windows 설정 > 앱 > 선택적 기능.
- 기능 추가: 페이지 상단의 기능 추가 버튼 클릭.
- OpenSSH 클라이언트 검색: 목록에서 OpenSSH 클라이언트를 찾아 선택 후 설치.
ssh가 준비가 되어 있다면, 아래 부터 따라 하시면 됩니다.
STEP 1. SSH 키 생성 및 설정
여러 개의 GitHub 계정을 사용할 때는 각 계정에 대한 SSH 키를 생성해야 합니다.
1.1 SSH 키 생성 ( ssh-keygen)
- 터미널 열기:
- git-hub을 사용하기 위해서는 사전에 git-hub bash라는 프로그램이 설치 되어 있는 것이 좋습니다.
- 다운로드 사이트 : https://git-scm.com/
- 터미널을 열고 아래의 경로로 이동을 합니다.
- git-bash는 windows cmd 명령어가 아닌 linux의 명령어를 씁니다.
- 생소하신 경우 그냥 복사&붙여넣기만 하셔도 됩니다.
$ pwd $ cd ~/.ssh $ ls -al
- SSH 키 생성:
-
bash
$ssh-keygen -t rsa -C "userA@test.com" -f id_rsa_test_01 $ssh-keygen -t rsa -C "4ourfuture@kakao.com" -f "id_rsa_4ourfuture" $ssh-keygen -t rsa -C "userB@test.com" -f my_key $ssh-keygen -t rsa -C "userC@test.com"
-
- userA@test.com을 각 자신의 GitHub 계정의 이메일로 변경하세요.
- 키 파일명 입력 시, 기본 파일명(id_rsa) 대신 다른 이름(예: my_key)을 입력합니다.
" 명령어 : ssh-keygen 이해하기 "
-
- ssh-keygen은 SSH (Secure Shell) 프로토콜에서 사용하는 키 쌍을 생성하는 데 사용되는 명령어입니다. 이 명령어는 보안 연결을 위해 인증 키를 만들고 관리하는 기능을 제공합니다.
- 옵션값 설명
-
- -t: 키의 유형을 지정합니다. 여기서 rsa는 RSA 알고리즘을 사용하여 키를 생성하겠다는 의미입니다.
- -b: 키의 비트 길이를 지정합니다. 4096 비트는 매우 강력한 보안성을 제공하는 키 길이입니다. 일반적으로 2048 비트도 사용되지만, 4096 비트는 더 높은 보안을 제공합니다.
- -C: 키에 대한 주석을 추가합니다. 여기서 "4ourfuture@kakao.com"은 키를 식별하기 위한 주석으로 사용됩니다. 주로 이메일 주소나 사용자 이름을 넣어 어떤 키인지 쉽게 알 수 있도록 합니다.
- -f : (생략가능) 파일을 기본 옵션이 아니라, 특정 이름으로 생성할 때 사용하는 옵션입니다.
-f 옵션이 없을 때, 즉 기본값으로 ssh-keygen을 실행하면 SSH 키는 다음과 같은 기본 경로와 파일명으로 생성됩니다:- 비공개 키: ~/.ssh/id_rsa
- 공개 키: ~/.ssh/id_rsa.pub
-
1.2 SSH 키 추가
- SSH 키 확인:
- 생성된 SSH 키는 기본적으로 C:\Users\<YourUsername>\.ssh\ 폴더에 저장됩니다.
- 해당 폴더에 생성된 파일 중 확장자가 .pub로 되어 있는 것이 공개키, 없는 것이 개인키 입니다.
- pub로 생성된 파일을 열어서 github에 복사 할 준비를 합니다.
- GitHub에 SSH 키 추가:
- GitHub 웹사이트에 로그인 후, Settings > SSH and GPG keys로 이동합니다.
- New SSH key를 클릭하고, 메모장에서 복사해 두었던 내용을 복사하여 붙여넣습니다.
- GitHub 웹사이트에 로그인 후, Settings > SSH and GPG keys로 이동합니다.
2. SSH 설정
이제 부터는 여러 계정을 사용할 경우, SSH 설정 파일을 수정해야 합니다.
- SSH config 파일 생성:
- C:\Users\<YourUsername>\.ssh\config 파일을 열거나 생성합니다.
- 파일이 없는 경우는 신규 파일로 생성을 해야 합니다.
- 에디터로 해당 파일을 열어서 아래의 내용을 추가:
Editor
# 첫 번째 GitHub 계정을 위한 별칭이름 설정 Host github-account1 # 연결할 호스트의 도메인 이름 HostName github.com # SSH 연결 시 사용할 사용자 이름 : ssh 로그인시는 git을 사용합니다. User git # 해당 계정에 대한 비공식 키 파일 경로 IdentityFile ~/.ssh/id_rsa # 두 번째 GitHub 계정을 위한 별칭이름 설정 Host github-account2 # 연결할 호스트의 도메인 이름 HostName github.com # SSH 연결 시 사용할 사용자 이름 : ssh 로그인시는 git을 사용합니다. User git # 해당 계정에 대한 비공식 키 파일 경로 IdentityFile ~/.ssh/my_key # 두 번째 GitHub 계정을 위한 별칭이름 설정 Host github-id_rsa_4OurFuture # 연결할 호스트의 도메인 이름 HostName github.com # SSH 연결 시 사용할 사용자 이름 : ssh 로그인시는 git을 사용합니다. User git # 해당 계정에 대한 비공식 키 파일 경로 IdentityFile ~/.ssh/id_rsa
- my_key는 위에서 생성한 것처럼 별도로 지정한 SSH 키 파일명으로 변경합니다.
- 위와 같은 방법으로 여러개의 KEY값을 관리할 수 있습니다.
- SSH Service 확인 하기
만약 처음 SSH서비스를 사용한다면, ssh-agent 서비스가 비활성화되어 있을 수 있습니다. 이를 활성화하려면:
- Windows + R을 눌러 실행 창을 엽니다.
- services.msc를 입력하고 Enter를 누릅니다.
- 서비스 목록에서 "OpenSSH Authentication Agent"를 찾아 더블 클릭합니다.
- "시작 유형"을 "자동"으로 설정하고, 서비스가 실행 중이지 않으면 "시작" 버튼을 클릭합니다.
서비스가 잘 돌고 있는지 확인하기
3. 생성된 키를 ssh 서비스에 추가
bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_test_01 #id_rsa_test_01 키를 ssh에 등록
ssh-add ~/.ssh/id_rsa_4ourfuture #id_rsa_4ourfuture 키를 ssh에 등록
ssh-add -l #잘 등록 되었는지 확인
SETP 3. Visual Studio Code에서 GitHub 저장소를 Clone (복사해서 가져오기)
이제 각 GitHub 계정에 맞는 저장소를 클론할 수 있습니다.
- Visual Studio Code 열기.
- 터미널 열기: Ctrl + ~를 눌러 터미널을 엽니다.
- 저장소 클론:
bash
ssh -T git@github-4ourfuture #연결 테스트 git clone git@github-4ourfuture:4-OurFuture/python_2024_001.git # Git Clone
- username/repo는 클론할 저장소의 경로로 변경하세요.
6. 추가 팁
- 여러 계정을 다룰 때 SSH 키와 config 파일을 잘 관리해야 합니다.
- 각 계정별로 작업할 때 주의 깊게 브랜치를 확인하세요.
이제 Visual Studio Code에서 여러 개의 GitHub 계정과 함께 작업할 준비가 되었습니다. 이 과정을 블로그 글로 작성하시면 많은 도움이 될 것입니다. 추가적인 질문이 있으시면 언제든지 말씀해 주세요!