모스카토

[mac] SSH로 git 계정 여러개 등록하기 본문

엘리스 ai트랙

[mac] SSH로 git 계정 여러개 등록하기

라리라밤 2022. 1. 13. 01:39

mac에서 기존 계정이 등록된 채로 다른 깃허브 아이디로 clone add commit push를 하면 permission denied 에러가 난다.

push error

기존계정에 새로운 계정의 리퍼지토리에 접근할 권한이 없다는 것이다..

급하게 구글에 'mac add git user' 같은 것을 검색해서 credential-osxkeychain 같은 것도 깔아봤지만 해결되지 않았다.

겨우 찾아낸 해답은 깃허브 계정을 여러개 등록하려면 ssh를 이용해야한다는 것이었다.

ssh가 뭔지도 모르지만 생각보다 어렵지 않아서 해결과정을 기록해둬야겠다.

** 깃 리퍼지토리는 생성했고, 클론까지 한 이후의 상황이다.


 

1. 일단 터미널을 키고 기존에 ssh폴더가 있는지 확인한다.

ls -al ~/.ssh

 

2. No such file or directory 가 나온다면 기존에 ssh 가 없으므로 아래 코드를 쳐서 새로 생성한다.

ssh-keygen -t rsa -b 4096 -C "{{본인 깃허브에 등록한 이메일주소}}"
코드를 따라치다보니 몰랐지만 rsa는 변경해도 되는 부분이다. 그냥 하고싶은 걸로 지정하면 된다. 약간 ssh에서 사용할 닉네임이나 아이디 같은 거다. 그리고 -t , -b, 4096, -C 같은 거는 나도 뭔지 모른다.
그냥 띄어쓰기나 소문자 대문자 틀리지 않게 따라치는 게 키포인트다.
중괄호 2개짜리는 {{ }} 중괄호를 제외하고 괄호에서 설명한 것에 해당하는 것을 치면 된다.

위 코드를 실행하면 generating 어쩌구 뜨고 key를 저장할 파일을 치라고 나오는데, 그냥 엔터를 치면 기본 저장위치에 저장된다.

기본 저장위치는 알아서 괄호안에 알려주므로 초보는 이게 편하다.

Enter passphrase (empty for no passphrase): 

이런 거도 뜨는데 마찬가지로 그냥 엔터만 치면 앞으로도 pssphrase를 넣을 일 없어서 편하다. 어차피 로컬이니까 내가 쓸 건데 안 넣는 게 나을 것 같다.

passphrase 확인하는것도 한번 더 엔터.

그러면 이제 ~/.ssh 폴더안에 id 파일이 2개 생긴 것을 확인할 수 있다.

ssh key 생성하는 코드에서 rsa라고 했으면 id_rsa 와 id_rsa.pub 파일이 생겼을 것이다.

rsa 대신 pizza라고 하면 id_pizza와 id_pizza.pub이 생길 것이다.

 

3. 깃허브로 가서 ssh를 등록해야 한다.

깃허브에서 오른쪽 상단의 계정 그림을 누르면 나오는 메뉴 중 Settings에 들어간다.

그러면 왼쪽에 여러메뉴들이 나오는데 SSH and GPG keys 에 들어간다.

new SSH key란 버튼을 누른다.

title에는 나중에 혹시 엄청 개발을 많이 하게 되고, 여러 ssh key 를 생성할 것을 대비해서 지금 생성할 ssh key에 대한 설명을 써 놓는다.

ssh key를 생성한 컴퓨터이름 같은 거..

그리고 Key에는 아까 터미널에서 생성한 ssh key를 넣어줘야 한다.

cat ~/.ssh/id_rsa.pub

 를 터미널에 입력하면 아까 생성한 파일 2개 중 id_rsa.pub파일을 열어준다.

rsa대신 다른걸 입력했다면 id_다른거.pub파일을 열어야 한다.

파일에 있는 모든 텍스트를 복사해서 깃허브의 Key 칸에 붙여넣기 한다.

add SSH Key버튼을 눌러 깃허브에 등록이 끝났다면 이제 절반은 했다.

 

 

4. 계정을 여러개 등록하려면 2번의 코드부터 한번 더 반복해주면 된다.

단 rsa는 바꿔줘야 한다.

 

5. ssh에 새로 만든 key들을 등록해준다.

등록하기 전에 $ eval $(ssh-agent) 를 쳐야한다.
아니면 Could not open a connection to your authentication agent. 라는 에러가 난다.
ssh-add ~/.ssh/id_rsa // 추가

ssh-add ~/.ssh/id_pizza // ssh키를 여러개 만들었다면 한번더 추가

ssh-add -l // 저장

 

6. 다시 터미널에서 ssh폴더의 config 파일을 설정해야한다.

기존에 ssh폴더가 있었다면 그냥 config 파일을 열고, 없었다면 config 파일을 생성한다.

open ~/.ssh/config  //파일열기

touch ~/.ssh/config  //파일 생성
#{{rsa나 pizza나 본인이 사용한 것}} account
Host github.com-{{rsa나 pizza나 본인이 사용한 것}}
HostName github.com
User git
IdentityFile ~/.ssh/id_{{rsa나 pizza나 본인이 사용한 것}}
IdentitiesOnly yes

#{{rsa나 pizza나 본인이 사용한 것}} account
Host github.com-{{rsa나 pizza나 본인이 사용한 것}}
HostName github.com
User git
IdentityFile ~/.ssh/id_{{rsa나 pizza나 본인이 사용한 것}}
IdentitiesOnly yes

config 파일에 위와 같이 작성한다.

중괄호 2개를 사용한 부분 외에 다른 부분은 동일하게 친다.

ssh key를 하나만 등록했으면 한번만 치고, 여러개를 등록했으면 여러개에 대해 작성한다.

저장한다.

 

7. 이제 깃의 config 파일도 설정해줘야 한다.

깃 리퍼지토리를 연결하고 싶은 폴더경로로 이동한 후 아래 코드로 remote주소를 확인해준다.

git remote -v

그러면 친숙한 url주소가 나올 것이다. 이걸 바꿔줘야 한다.

open .git/config

.git안의 config파일을 열어주고, [remote "origin"] 부분 아래의 url을 아래와 같이 바꾸고 저장한다.

url = git@github.com-{{rsa나 pizza나 본인이 사용한 것}}:{{연결할 깃허브 ID}}/{{리퍼지토리 이름}}.git

그리고 혹시 config 파일에 [user] 나 [credential] 부분이 없다면, 아래 코드로 추가해준다.

git config --global user.name "{{본인 깃허브 ID}}"

git config --global user.email "{{본인 깃허브 이메일}}"

git config credential.username "{{본인 깃허브 ID}}"

git config credential.email "{{본인 깃허브 이메일}}"
위 네가지 코드들 중 뭐가 필요한거고 뭐가 필요없는 건지는 모르겠다.
혹은 .git/config 파일에서 그냥 텍스트로 name과 email을 추가해줘도 되는 것 같다.

그리고 다시 한번 git remote -v 로 아까와 같은 주소를 확인하면 이상한 형태로 달라진 것을 볼 수 있다.

그럼 이제 git add, commit, push를 해보면 push 가 에러없이 잘 된다!

'엘리스 ai트랙' 카테고리의 다른 글

자바스크립트 기초  (0) 2022.01.18
Git  (0) 2022.01.15
반응형 웹  (0) 2022.01.13
[css] Transform Transition Animation  (0) 2022.01.13
프론트엔드 기초  (0) 2022.01.11
Comments