본문 바로가기
Git

[Github] 깃허브 계정 여러개 연결하기

by WhoamixZerOne 2023. 4. 2.
해당 글은 우분투에서 진행한 내용입니다.

 

✔ SSH-Key 생성

SSH-Key를 관리하는 디렉터리로 이동 후 생성해 줍니다.

홈 디렉터리 ".ssh" 디렉터리로 이동합니다. ssh 앞에 "."은 숨겨진 파일, 디렉터리에 해당합니다.

만약 디렉터리가 없을 시 생성하고 이동합니다.우분투, 맥의 경우 홈 디렉터리이고 윈도우의 경우 "C:\Users\<username>\user\.ssh" 입니다.

$ cd ~/.ssh
$ ssh-keygen -t rsa -C '깃허브이메일계정'

# 위에 Enter를 하고 나면 아래의 내용이 나온다
# 그러면 만들 rsa 이름 입력. 보통 id_이름_rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/해당 경로/.ssh/id_rsa): id_name_rsa

# 다시 위에 Enter를 하고 나면 아래의 내용이 나온다
# 그냥 Enter 하고 넘어가면 된다
Enter passpharse (empty for no passpharse):

# Enter를 하고 나면 아래의 내용이 나온다
# 다시 확인을 하는데 그냥 Enter 하고 넘어가면 된다
Enter same passpharse again:

 

그러면 위와 같이 나오고 "ls" 명령어를 실행해 보면 "id_이름_rsa", "id_이름_rsa.pub" 두 개의 파일이 만들어져 있다.

"id_이름_rsa"는 비공개 키이고 "id_이름_rsa.pub"는 공개 키이고 두 개가 한 쌍이다.

깃허브에 연결할 때는 공개 키를 통해 연결한다.

 

✔ SSH-Key 등록

  • 깃허브 사이트로 이동
  • 자신의 계정 settings 클릭
  • 왼쪽 목록에서 "SSH and GPG keys" 클릭
  • SSH keys에서 "New SSH key" 버튼 클릭
  • .ssh 디렉터리에 만든 "id_이름_rsa.pub" 파일을 열어서 복사 붙여 넣기

 

그리고 2번째 계정도 위와 동일하게 진행해 줍니다.

그 뒤에 "~/.ssh" 경로에서 "config" 파일이 없으면 새로 생성해 줍니다.

$ touch config
$ vi config

ssh-key 등록을 안 했던 분들이라면 아마 "config" 파일이 없어서 새로 생성해 주고 안에 내용이 비어있을 겁니다.

아래의 내용을 "config" 파일에 넣어주면 됩니다.

Host github.com-이름
	HostName github.com
    IdentityFile ~/.ssh/id_이름_rsa
    User git
    
Host github.com-이름
	HostName github.com
    IdentityFile ~/.ssh/id_이름_rsa
    User git

 

✔ SSH-Agent 등록

$ eval "$(ssh-agent -s)"

# 위의 내용을 Enter 하면 아래의 내용이 출력
Agent pid 숫자

# 아래의 명령어로 User Agent에 등록된 목록 확인
$ ssh-add -l

# 아래의 명령어로 User Agent에 등록
$ ssh-add ~/.ssh/만든rsa파일1
$ ssh-add ~/.ssh/만든rsa파일2

$ ssh-add -l

 

 SSH 연결 테스트

# 이름은 config에 입력했던 이름
$ ssh -T git@github.com-이름

# 위의 내용을 Enter 하면 아래의 내용 출력
# 성공 시
Hi 이름! You've successfully authenticated, but GitHub does not provide shell access.

# 실패 시
The authenticity of host 'github.com (ip)' can't be established.
ED25519 key fingerprint is SHA256:암호내용.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?

# 위의 내용은 SSH를 사용하여 깃허브에 처음 연결할 때 발생하는 일반적인 메시지이고
# SSH 클라이언트가 서버의 공개 키를 인식하지 못했을 때 발생합니다
# 일종의 보안 메시지이고, 깃허브 서버가 진짜인지 확인하고 사용자가 의도 한 대상 서버인지 확인하는 것이다
# "yes"을 입력하면 성공 시 내용이 출력된다

 

 

이제 앞으로는 git clone 혹은 remote 할 때 HTTPS 대신 SSH로 하면 된다.

$ git remote add origin git@github.com-이름:계정/repository이름.git

$ git clone git@github.com-이름:계정/repository이름.git

 

 

 

 

🔗 Reference

'Git' 카테고리의 다른 글

Github 패스워드 변경  (0) 2022.03.07

댓글