하나의 로컬에서 다계정 깃허브 SSH 설정하는 방법
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_BNote: 비밀번호(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_B3. 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.gitLog
- • 2026-01-20: create