반응형

개요

github 에서 private repository를 사용하다보면 https 방식으로 소스코드를 clone 하는 것을 금지 하고 github에서 자체적으로 제작한 CLI 나 ssh-key를 사용할 것을 강제하고 있다. 문제는 github 정책상 다른 계정에서 하나의 ssh-key를 등록해서 사용하고 있는 경우 다른 계정에서 ssh-key를 등록할 수 없다는 것이다. 이는 보안을 위한 올바른 정책이다.

하지만, github를 개인 계정만 사용하는 것이 아니라 회사 계정과 구분해야 사용해야 할 경우가 있기 때문에 어쩔 수 없이 복수의 계정을 사용해야 하는 경우가 발생된다. 이 경우 ssh-key를 복수로 사용해야 한다.

ssh rsa key 추가 생성

우선 기본적으로 기존에 사용하는 ssh-key가 있다는 전제하에 추가 생성을 한다. github에서는 기본적으로 레거시 rsa 키보다는 추천하는 알고리즘으로 생성한 ssh-key 사용하기를 권장하고 있다. 그러나 아직(?)은 rsa 방식을 허용하고 있다.

windows 경우 git-bash 에서 리눅스나 OS X 에서는 터미널에서 다음과 같은 옵션으로 ssh-key 를 생성한다.

# 일반적인 방법
ssh-keygen -C "<your_email@example.com>" -f ~/.ssh/id_rsa_<option>

# github에서 권장하는 알고리즘 필수요소는 아님
ssh-keygen -t ed25519 -C "<your_email@example.com>" -f ~/.ssh/id_rsa_<option>

-f 옵션으로 id_rsa_<option> 이름으로 키가 생성 할 수 있다. 일반적으로 생성과정에서 경로를 묻지 않고 생성을 하게 된다. 이후 추가 패스워드를 넣지 않는다면 enter를 연타하여 생성을 하면 된다. 여기서 다음 예시를 위해 <option> 자리에 임으로 add 라고 이름을 붙이도록 하겠다.

config 설정

windows 에서는 ~/.ssh/config 파일이 생성되어 있는 경우가 있다. 유닉스 계열(리눅스, OS X)에서는 없기 때문는 경우가 있는데 이 경우 생성해주면 된다. 여기서는 vs code로 편집을 하는데 편한 편집 프로그램을 사용해서 작성을 하면 된다.

# ~/.ssh/config
# default
Host github.com
	HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa.pub
    
# addition option 추가된 ssh-key
Host github.com-add
	HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa_add.pub

감이 있는 사람은 config 파일 목록에서 보면, Host 이름에 따라서 다르게 동작하게 한다는 것을 알 수 있을 것이다.

git clone from remote repository

우선은 github 의 두번째 계정에 새로 생성한 id_rsa_add.pub 키를 등록을 먼저 하도록 하자.

이제 git 명령어로 github에 있는 repository를 당겨 오도록 하자. 이 경우 ssh-git url 구성 방식에 대해서 이해를 해야 한다. url를 구성하는 위치중에서 host에 해당 되는 부분을 다른 ~/.ssh/config 에 설정한 host 이름으로 대체를 하면 HostName은 유지되지만 사용한 ssh-key는 다르게 사용한다.

# git clone 예시
git clone git@{host}:{github_id}/{repository_name}.git

# add로 git clone을 할 경우
git clone git@github.com-add:{github_id}/{repository_name}.git

정상적으로 clone이 되었다면, 이제 github 에 복수의 계정으로도 ssh-key 를 사용할 수 있게 되었다. 이렇게 clone으로 받아 생성된 workspace는 host 부분이 처음 받은 이름으로 되어 있어 commit/push/pull 등을 정상적으로 사용을 할 수 있게 된다.

참조

 

Github 다수 계정을 위한 SSH key 설정 :: 마이구미

이번 글은 하나의 서버에서 Github 계정을 둘 이상 사용할 수 없는 이슈에 대해 해결 방안을 다뤄본다.이번에 private 저장소를 만들어서 개발서버를 셋팅하는 과정에서 얻은 무식함과 깨달음으로

mygumi.tistory.com

 

새 SSH 키 생성 및 ssh-agent에 추가 - GitHub Docs

SSH 키 암호 정보 SSH(Secure Shell Protocol)를 사용하여 GitHub.com의 리포지토리에서 데이터에 액세스하고 쓸 수 있습니다. SSH를 통해 연결할 때 로컬 머신에서 프라이빗 키 파일을 사용하여 인증합니다.

docs.github.com

 

한 컴퓨터에서 여러 개의 깃허브 계정 사용하기

😀SSH 설정을 통해 한 컴퓨터에서 여러개의 깃허브 계정을 사용해보자.

velog.io

 

github 에 여러 계정 등록하고 ssh 설정하기

새로운 id 는 new-github-id 입니다.

www.lesstif.com

 

반응형

+ Recent posts