잇스쿨
[Git] github 다수의 계정 사용하기 본문
회사에서 사용하는 github 계정과 개인 계정을 같이 쓸 수 있다는 사실을
구글링을 통해 알아내고서 열심히 뻘짓을 하며 며 성공했다...!
나중에 다시 하려면 또 뻘짓을 할 것 같아서 포스팅하기로...★
우선 PC에 Git이 이미 설치되어 있다라는 가정하에 아래와 같은 단계로 진행된다.
1. SSH-key 생성
Git Bash를 실행한 후, 아래의 명령어를 실행한다. 이 때, 이메일 주소는 git에 가입한 이메일 주소로 입력해야 한다.
$ ssh-keygen -t rsa -b 4096 -C [개인 이메일 주소] |
Enter! 하면 key의 이름을 입력하라고 아래와 같은 문구를 노출한다.
Generating public/private rsa key pair. Enter file in which to save the key (/Users/dpudpu/.ssh/id_rsa):
기본값은 id_rsa이지만, 개인/회사 계정을 구분짓기 위해 /Users/User/.ssh/id_rsa_personal이라고 입력한다.
여기서 /Users/User/는 제가 원하는 경로에 저장하기 위함으로 아래의 이미지처럼 경로를 설정한다.
같은 방식으로 또 다른 계정의 키를 생성한다. 회사 계정임으로 키의 이름을 id_rsa_company로 한다.
$ ssh-keygen -t rsa -b 4096 -C "회사 이메일 주소" |
Generating public/private rsa key pair. Enter file in which to save the key (/Users/dpudpu/.ssh/id_rsa): /Users/User/.ssh/id_rsa_company
그럼 ~/.ssh 경로에 총 4개의 파일이 아래처럼 생성된다.
2. Key 등록
생성된 키를 ssh-add로 등록한다.
$ ssh-add id_rsa_personal $ ssh-add id_rsa_company |
3. key 복사 & github에 등록하기
$ clip <~/.ssh/id_rsa_company.pub
명령어를 실행하면 ssh key 값이 나오는데, 이를 복사합니다.
https://github.com/ 에 접속하여 회사 계정으로 로그인해서, settings -> SSH and GPG keys -> New SSH key 를 들어갑니다.
3번에서 복사한 key값을 New SSH key 버튼을 클릭하여 이동한 화면의 Form에 Key 입력창에 넣고 Add 합니다.
같은 방식으로 $ clip <~/.ssh/id_rsa_personal.pub로 키값을 복사하여 https://github.com/ 에 접속하여 개인 계정으로 로그인해서 Key 값을 등록합니다.
4. ~/.ssh/config 설정
저 같은 경우는 C:\Users\User\.ssh 경로에 config 파일을 만들었습니다. 없다면 새로 만들면 되니까 놀라지 마세요..!
확장자는 따로 없고, 그냥 config로 만들어주면 됩니다.
# company Host company-github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_company # personal Host personal-github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_personal |
위의 내용을 입력하고 저장!
정상적으로 연결이 되는지 ssh -T [host]로 확인합니다.
$ ssh -T company-github.com $ ssh -T personal-github.com |
위의 명령어를 입력했을 때, 정상적으로 연결이 되면 Hi [계정명]! You've successfully authenticated, but GitHub does not provide shell access. 문구가 보입니다.
5. ~/.gitconfig 설정
~/.gitconfig 에 전역 설정을 합니다. C:\Users\User 경로에 생성하였고, 아래의 내용을 저장합니다.
[user] name = [개인 계정명] email = [개인 계정 이메일 주소] [includeIf "gitdir:~/Public"] path = .gitconfig-company |
includeIf 는 C:\Users\User\Public 디렉터리 아래 있다면 ~/.gitconfig-company 파일을 불러옵니다.
~/.gitconfig-company 파일도 생성하여 아래의 내용을 입력 후 저장합니다.
[user] name = [회사 계정명] email = [회사 계정 이메일 주소] |
위와 같이 설정하면 평소에는 user.email에 개인 개정을 사용하고 ~/Public 디렉터리에서는 회사 계정을 사용하게 됩니다.
6. 사용하기
여기서 좀 뻘짓을 했는데 기존에 사용하던 git 거북이(TortoiseGit) 에 이미 회사 계정으로 등록이 되어 있어서 개인 계정의 레파지토리 clone 후, push 하는데 계속~~~
remote: Permission to denied to [회사 계정명]
fatal: unable to access 'git 주소' : The requested URL returned error: 403 문구가 나왔다.
즉, 회사 계정으로는 개인 계정의 레파지토리에 push를 못한다는 소리!
구글링을 해보니 [제어판]-[사용자 계정]-[자격 증명 관리자] 로 들어가 Windows 자격 증명에서 git 관련된 일반 자격 증명을 모두 제거하라고 되어 있었다. 그리고 개인 계정을 Global로 설정해놨기 때문에 거북이에 세팅에 들어가 계정을 일반 계정으로 변경해주었다.
그래도 계속 동일한 에러가 나서 더 구글링을 해보니 해결방법이 있었다.
6-1. 업로드 하고 싶은 프로젝트 경로에서 마우스 우클릭
6-2. 아래의 명령어 순서대로 실행
git init
git remote add origin 레파지토리 주소
git pull origin master
git add .
git commit -m "first commit"
git push -u origin master |
6-3. push 명령어 입력하고 Enter하는 순간 새로 로그인하라는 창이 출력되면 계정 정보 입력 후 로그인
* 자세한 내용은 아래 블로그를 참고했으니 이동 GoGo
https://meaownworld.tistory.com/78
* clone 할 때, 주소는 HTTPS 주소를 복사해서 사용하기
7. 참고
그래도 에러가 나신다! 하시는 분들은 개인 계정을 Git Bash에서 global로 재설정해주세요!
아래 블로그 참고 부탁드립니다!
https://recoveryman.tistory.com/283
앗 그리고 private 레퍼지토리를 clone하려면
$ git clone [host]:[githubId]/[repository명] |
명령어를 실행하고, 여기서 [host]는 ~/.ssh/config 에서 설정한 host입니다.
$ git clone personal-github.com:[githubId]/[repository명]이 되겠죠!
가장 큰 도움이 되었던 블로그들 아래 url 남겨드리니 함께 참고 부탁드립니다~
https://dublin-java.tistory.com/62
https://velog.io/@jay/multiplegithubaccounts