0Guhn
0Guhn

하나의 로컬에서 다계정 깃허브 SSH 설정하는 방법

#SSH#Github#https

SSH와 HTTPS 차이점

보안

HTTPS는 SSL/TLS를 통해서 아이디, 토큰(비밀번호)을 보낸다. 안전하긴 하지만 근본적으로 봤을 때 어쨌든 네트워크 경로에 잘 감싸진 상태로 노출된다.

SSH는 비대칭 키(public key infrastructure)방식을 사용한다. 비밀 키와 공개 키가 있는데 비밀 키는 내 컴퓨터에만 있고 절대 네트워크에 노출 될 일 없음. HTTPS보다 구조적으로 안전하다.

비유하자면 HTTPS는 아주 튼튼한 문이 있다면, SSH는 문 자체가 없다. 문이 없으면 들어올 방법이 없다.

하지만 아무리 SSH라도 100프로 안전하지는 않다. IT에서는 100% 보안같은건 없다.

편의

HTTPS 경우 다른 계정 커밋할 때 깃허브 로그인/로그아웃을 해야하는 번거로움

SSH 설정 파일에 이름표만 잘 작성한다면 로그아웃 없이 여러 계정을 자유롭게 이용

깃허브 SSH 설정

1. SSH 키 생성 (계정별 분리)

기존 키와 섞이지 않도록 파일 경로와 이름을 명확히 지정하여 생성한다.

# 계정 A용 (경로 및 파일명 지정)
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_github_A
 
# 계정 B용
ssh-keygen -t ed25519 -C "[email protected]" -f ~/.ssh/id_github_B

Note: 비밀번호(Passphrase)는 엔터를 눌러생략해도 되고 넣어도 된다. 넣으면 깃 푸쉬할 때마다 매번 물어본다.(설정으로 한 번만 입력하고 자동화 가능)

2. SSH Config 파일 작성

접속 주소(Host)에 따라 어떤 열쇠(IdentityFile)를 꺼낼지 컴퓨터에게 알려준다.

# 설정 파일 열기
vim ~/.ssh/config
# 아래 내용을 입력 (Host 이름은 사용하기 편한 별칭으로 설정)
 
# 계정 A 설정
Host github.com-A 
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_github_A
 
# 계정 B 설정
Host github-B
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_github_B

3. Github에 공개키 등록

각 계정의 설정 페이지(Settings > SSH and GPG keys)에 공개키(.pub) 내용을 붙여넣는다.

# 출력된 내용을 복사하여 각 계정에 등록
cat ~/.ssh/id_github_A.pub
cat ~/.ssh/id_github_B.pub

주의 .pub 있는 내용을 깃허브에게 줘야한다! .pub 없는건 개인키다

4. Remote 주소 설정 (핵심)

저장소 연결 시 github.com 대신 Config에서 설정한 Host 별칭을 사용해야 한다.

  • 기존 방식: [email protected]:User/repo.git
  • 다계정 방식: git@[Host별칭]:User/repo.git
# 예시: 계정 B로 연결할 때
git remote set-url origin git@github-B:UserB/repo-name.git

Log

  • 2026-01-20: create