회사 컴퓨터를 사용하면서 개인 Github도 같이 관리하고 싶은데 어려움이 있었습니다
이처럼 저와 같이 계정분리를 원하는 분들을 위해 해결방법을 알려드리고 싶어 글을 적었습니다
1. 원하는 계정의 SSH key-gen만들기
일단 아무폴더에 가서 무지성으로 코드를 쳐줍니다
> ssh-keygen -t rsa -b 4096 -C "your@email.com"
그럼 아래처럼 저장할 폴더를 물어보는데
Generating public/private rsa key pair.
Enter file in which to save the key (/${userPath}/id_rsa):
저는 id_rsa가 아닌 personal로 key를 저장하였습니다
Enter file in which to save the key (/${userPath}/id_rsa): /Users/Frontend Developer/.ssh/personal
다음에 비밀번호도 등록할거냐고 물어보는데 필요하신 분은 치시면됩니다!
그럼 폴더에 personal과 personal.pub 파일이 생성되게 됩니다
personal.pub가 공개키이고, 확장자 없는 personal 파일이 비밀키가 됩니다
앞으로 공유하는 파일들은 전부 .pub파일로 처리합니다.
2. SSH key를 ssh-agent에 등록해줍니다
.ssh폴더로 이동후에 코드를 쳐주시면 좋습니다
아래 코드는 SSH key를 ssh-agent에 등록해주는 코드입니다
> ssh-add /${userPath}/${userSSHPubKey.pub}
저는 여기서 에러가 났었는데요 이유는 ssh-agent가 실행되고 있지 않았기 때문입니다
다른 분의 글을 보고 해결할 수 있었는데요
.ssh폴더로 이동 후 다음과 같이 코드를 쳐줍니다
> Get-Service ssh-agent
Status Name DisplayName
------ ---- -----------
Stopped ssh-agent OpenSSH Authentication Agent
그럼 다음과 같이 ssh-agent의 상태를 가져와 줍니다 현재 멈춰있는것을 확인할 수 있어습니다
> Set-Service ssh-agent -StartupType Manual
> Get-Service ssh-agent | Select StartType
StartType
---------
Manual
> start-Service ssh-agent
다음과 같이 세개의 코드를 작성해 주시고 다시 Get-Service ssh-agent 코드를 통해 상태를 확인해 주세요
> Get-Service ssh-agent
Status Name DisplayName
------ ---- -----------
Running ssh-agent OpenSSH Authentication Agent
그럼 상태가 바뀐것을 확인할 수 있습니다
그럼 이제 위의 ssh key를 ssh-agent에 등록해주는 코드를 쳐주면 됩니다
3. Config 파일로 다수의 계정을 관리하자.
.ssh폴더에 config 라는 파일을 생성해줍니다
config파일을 vscode를 열어 다음과 같이 작성해줍니다
1 # account 1
2 Host github.com-personal
3 HostName github.com-personal
4 User git
5 IdentityFile ~/.ssh/personal
github.com-personal의 personal은 아까 생성했던 SSH key입니다
IdentityFile에는 비밀키를 넣어주면됩니다
4. 깃 레파지토리의 remote를 설정한다
이제 위에서 세팅은 다 끝났습니다 원하는 깃 레파지토리를 계정을 분리하고 싶은 프로젝트 폴더에서 remote해줍니다
remote방식은 아래와 같이 설정해주면 됩니다
# 현재 remote 가져오기
> git remote get-url origin
# 처음 remote하는 경우
> git remote add origin ${your-github.com}-personal:${your-repo}
# remote변경하는 경우
> git remote set-url origin ${your-github.com}-personal:${your-repo}
# 혹은
> git clone ${your-github.com}-personal:${your-repo}
> 예: git clone git@github.com-personal:yeafla530/Study.git
5. 레파지토리 계정 격리
방금 그 프로젝트 폴더에서 git config를 다시 설정해줄것입니다
예전과 다른점을 local로 설정해준다는 점입니다
$ git config --local user.name "Your Name"
$ git config --local user.email "Your Email"
다음은 평소와 다름없이 add commit push를 해주면 됩니다
비밀번호를 설정하신 분들은 비밀번호 입력하라는 창이 뜰것입니다
이상입니다
다른분들에게도 도움이 됐음 좋겠습니다