프로그래밍/Git

GitHub 사용 시 SSH Key 등록 방법!

허구의 2025. 6. 20. 13:54
728x90

 

 

GitHub에서 SSH 방식 인증과 다중 키 설정 방법

Github는 더 이상 사용자 이름과 비밀번호를 이용한 인증을 지원하지 않으며, 보다 안전한 방식인 SSH 인증 또는 Personal Access Token 사용을 권장합니다. 이 글에서는 SSH 방식을 중심으로 설명하며, 특히 회사 계정 및 개인 계정 등 여러개의 GitHub 계정을 사용하는 경우 어떻게 SSH 키를 설정하고 관리할 수 있는지를 설명합니다!

참고로 사용자 이름과 비밀번호로 클론을 시도하면 아래와 같은 에러를 얻을 수 있습니다. 만약 아래와 같은 에러를 얻은 상황이라면 SSH 키를 등록하면 해결됩니다.

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: https://github.com/example/example.git/에 대한 인증이 실패하였습니다

 

 

1. SSH 방식이란?

SSH(Secure Shell)는 네트워크 상에서 데이터를 안전하게 송수신하기 위한 프로토콜입니다. GitHub에서 SSH를 사용하는 경우, 비밀번호를 입력하지 않아도 Git 작업을 수행할 수 있으며, 인증은 미리 등록된 공개키와 로컬의 개인키 쌍을 통해 이루어집니다.

 

2. SSH 키 등록 방법

SSH 키 생성

아래 명령어를 사용해 SSH 키를 생성할 수 있습니다:

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519
  • -t ed25519: 키의 알고리즘 타입
  • -C: 키 설명용 주석 (일반적으로 이메일)
  • -f: 키 파일 이름 지정

이 과정을 통해 id_ed25519(개인키)와 id_ed25519.pub(공개키)가 생성됩니다.

 

생성된 SSH 키 GitHub에 등록

생성된 공개키는 아래 명령어를 통해 확인 가능합니다.

cat ~/.ssh/id_ed25519.pub

 

해당 출력을 복사하여 GitHub 계정의 Settings → SSH and GPG keys에서 등록하시면 됩니다.

Settings은 우측 상단의 프로필 얼굴을 클릭하시면 찾을 수 있으며, SSH and GPG Keys는 좌측 Access 안에서 찾을 수 있습니다.

 

3. 여러 GitHub 계정을 위한 SSH 키 관리

하나의 컴퓨터에서 여러 개의 GitHub 계정을 사용하려면 각 계정에 대해 별도의 SSH 키를 생성하고, SSH 설정 파일을 통해 계정을 구분해야 합니다.

SSH 키 생성

# 개인 계정
ssh-keygen -t ed25519 -C "same_email@example.com" -f ~/.ssh/id_ed25519_personal

# 회사 계정
ssh-keygen -t ed25519 -C "same_email@example.com" -f ~/.ssh/id_ed25519_work

 

SSH 설정 파일 편집

~/.ssh/config 파일을 아래와 같이 작성합니다:

# 개인용 GitHub
Host github-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal

# 회사용 GitHub
Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work

 

저장소 클론 시 Host 이름 지정

위에서 설정한 Host 이름을 사용해 다음과 같이 저장소를 클론합니다:

# 개인 계정 저장소 클론
git clone git@github-personal:username/repo.git

# 회사 계정 저장소 클론
git clone git@github-work:username/repo.git

 

이렇게 하면 같은 GitHub 도메인(github.com)이라도 설정한 키에 따라 구분해서 접속할 수 있습니다.

 

4. 커밋 이메일 설정은 별도로 관리

SSH 인증과는 별개로, 커밋 작성 시 사용하는 이메일은 git config user.email을 통해 관리합니다. 계정마다 사용하는 이메일이 다르다면 저장소 단위로 따로 설정해야 합니다.

# 개인 저장소
git config user.email "personal@example.com"

# 회사 저장소
git config user.email "work@example.com"

 

728x90