GIT (GitHub)

여러개의 GitHub 계정을 사용해야 할 때 (Window환경)

4OurFuture 2024. 9. 9. 22:34
728x90
반응형
Visual Studio Code에서 여러 개의 GitHub 계정과 연동하는 방법에 대해 자세히 설명하겠습니다. 이 글에서는 Windows 환경에서 Python의 가상 환경(venv)을 사용하는 예제를 포함합니다. 각 단계를 따라할 수 있도록 명령어와 설명을 제공하겠습니다.

사전준비 ssh 확인 

Windows에는 기본적으로 SSH 클라이언트가 포함되어 있습니다. Windows 10 버전 1809 이후부터는 OpenSSH 클라이언트가 기본적으로 설치되어 있어, PowerShell이나 명령 프롬프트에서 ssh 명령어를 사용할 수 있습니다. SSH가 설치된 분은 0번 사전준비 단계는 건너 뛰어도 됩니다. 

STEP 0.[사전준비]  SSH 클라이언트 확인 방법

  1. PowerShell 또는 명령 프롬프트 열기.
  2. 다음 명령어 입력:

    bash

    ssh
    
    • SSH 클라이언트가 설치되어 있으면 사용 방법이 출력됩니다.

SSH가 설치 되어 있는 경우 위와 같은 화면이 나와야 합니다.

STEP 0-1. SSH 클라이언트가 없는 경우

만약 ssh 명령어가 인식되지 않으면, 다음 방법으로 설치할 수 있습니다.

[OpenSSH 클라이언트 설치 방법]

  1. 설정 열기: Windows 설정 >  > 선택적 기능.
  2. 기능 추가: 페이지 상단의 기능 추가 버튼 클릭.
  3. OpenSSH 클라이언트 검색: 목록에서 OpenSSH 클라이언트를 찾아 선택 후 설치.

 

ssh가 준비가 되어 있다면, 아래 부터 따라 하시면 됩니다. 

STEP 1. SSH 키 생성 및 설정

여러 개의 GitHub 계정을 사용할 때는 각 계정에 대한 SSH 키를 생성해야 합니다.

1.1 SSH 키 생성 ( ssh-keygen) 

  1. 터미널 열기:
    • git-hub을 사용하기 위해서는 사전에 git-hub bash라는 프로그램이 설치 되어 있는 것이 좋습니다. 
    • 다운로드 사이트 : https://git-scm.com/


  2. 터미널을 열고 아래의 경로로 이동을 합니다.
    • git-bash는 windows cmd 명령어가 아닌 linux의 명령어를 씁니다.
    • 생소하신 경우 그냥 복사&붙여넣기만 하셔도 됩니다.
      $ pwd
      $ cd ~/.ssh
      $ ls -al
  3. SSH 키 생성:
  4. 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 키 추가

  1. SSH 키 확인:
    • 생성된 SSH 키는 기본적으로 C:\Users\<YourUsername>\.ssh\ 폴더에 저장됩니다.
    • 해당 폴더에 생성된 파일 중 확장자가 .pub로 되어 있는 것이 공개키, 없는 것이 개인키 입니다.

▲윈도우 탐색기로 확인한 경로

 

  • pub로 생성된 파일을 열어서 github에 복사 할 준비를 합니다. 

▲메모장으로 열었을 때 위와 같은 SHA-256으로 암호화 된 공개키를 볼 수 있고, 그걸 복사합니다.

 

  1. GitHub에 SSH 키 추가:
    • GitHub 웹사이트에 로그인 후, Settings > SSH and GPG keys로 이동합니다.



    • New SSH key를 클릭하고, 메모장에서 복사해 두었던 내용을 복사하여 붙여넣습니다.

 

 

 

2. SSH 설정

이제 부터는 여러 계정을 사용할 경우, SSH 설정 파일을 수정해야 합니다.

  1. SSH config 파일 생성:
    • C:\Users\<YourUsername>\.ssh\config 파일을 열거나 생성합니다.
    • 파일이 없는 경우는 신규 파일로 생성을 해야 합니다. 
  2. 에디터로 해당 파일을 열어서 아래의 내용을 추가:

    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값을 관리할 수 있습니다. 
  3. SSH Service 확인 하기 

만약 처음 SSH서비스를 사용한다면, ssh-agent 서비스가 비활성화되어 있을 수 있습니다. 이를 활성화하려면:

  1. Windows + R을 눌러 실행 창을 엽니다.
  2. services.msc를 입력하고 Enter를 누릅니다.
  3. 서비스 목록에서 "OpenSSH Authentication Agent"를 찾아 더블 클릭합니다.
  4. "시작 유형"을 "자동"으로 설정하고, 서비스가 실행 중이지 않으면 "시작" 버튼을 클릭합니다.

 

서비스가 잘 돌고 있는지 확인하기 

 

3. 생성된 키를 ssh 서비스에 추가

bash

eval "$(ssh-agent -s)"

▲ pid 의 숫자는 계속 바뀌는 값입니다.

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 계정에 맞는 저장소를 클론할 수 있습니다.

  1. Visual Studio Code 열기.
  2. 터미널 열기: Ctrl + ~를 눌러 터미널을 엽니다.
  3. 저장소 클론:

    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 계정과 함께 작업할 준비가 되었습니다. 이 과정을 블로그 글로 작성하시면 많은 도움이 될 것입니다. 추가적인 질문이 있으시면 언제든지 말씀해 주세요!

728x90
반응형