티스토리 뷰

회사에서는 GitLab을 사용하는데, 개발 연습을 위해 GitHub도 함께 사용하려고 한다.

근데 기존 SSH 키(id_ed25519)는 GitLab 전용으로 설정되어 있어서,

GitHub 용 SSH 키를 새로 생성하고 각각의 키를 등록하고 사용하는 방법을 정리해본다.


1️⃣ GitHub용 SSH 키 생성하기

GitHub에서 사용할 새로운 SSH 키를 생성한다.

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_github
  • -t ed25519 : ed25519 암호화 방식 사용
  • -C "your_email@example.com" : GitHub 계정 이메일 입력
  • -f ~/.ssh/id_ed25519_github : GitHub용 SSH 키 파일 이름 지정

🔹 "Enter passphrase" 요청이 뜨면 비워두거나 원하는 비밀번호를 설정할 수 있다.

암호 필요 없으면 엔터 두번 ㄱㄱ
그럼 이렇게 나옴

2️⃣ SSH 에이전트 실행 및 키 등록

SSH 에이전트를 실행한 후, 새로 생성한 키를 등록한다.

eval "$(ssh-agent -s)"

(환경에 따라 exec ssh-agent bash 또는 exec ssh-agent zsh를 실행해야 할 수도 있다.)

 

그 후, 키를 추가한다.

ssh-add --apple-use-keychain ~/.ssh/id_ed25519_github

💡 macOS Monterey(12.0) 이전 버전에서는 -K 옵션을 사용해야 할 수도 있음.


3️⃣ GitHub 계정에 SSH 공개키 등록하기

SSH 키를 GitHub 계정에 추가해야 한다.

cat ~/.ssh/id_ed25519_github.pub

 

위 명령어를 실행하면 SSH 공개키(id_ed25519_github.pub) 설정에 추가된다.

 

  1. GitHub 로그인
  2. SettingsSSH and GPG keysNew SSH key 클릭
  3. Title 입력 (예: MacBook SSH)
  4. Key 부분에 id_ed25519_github.pub 내용 붙여넣기
  5. Add SSH key 클릭

 

GitHub에서는 SSH 키를 추가할 때 두 가지 유형을 제공한다.

Authentication KeySigning Key!

  • Authentication Key:
    GitHub과 SSH를 통해 인증하고 Git 작업을 수행할 때 사용
    일반적으로 코드 푸시 및 풀과 같은 Git 작업에 필요
  • Signing Key:
    커밋이나 태그에 디지털 서명을 추가할 때 사용
    코드의 무결성을 보장하고, 서명된 커밋을 신뢰할 수 있도록 함

대부분의 경우, 리포지토리에 접근하고 코드 작업을 수행하기 위해서는 Authentication Key를 선택하면 된다.


4️⃣ SSH 설정 파일 수정 (~/.ssh/config)

GitLab과 GitHub의 SSH 키를 구분하기 위해 ~/.ssh/config 파일을 설정한다.

vi ~/.ssh/config

아래 내용을 추가한다.

# GitHub 개인 계정
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github
  IdentitiesOnly yes

# 회사용 GitLab 계정
Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/id_ed25519
  IdentitiesOnly yes

💡 이렇게 하면 GitHub 접속 시 id_ed25519_github를, GitLab 접속 시 id_ed25519를 자동으로 사용한다.

 


5️⃣ SSH 키 정상 작동 확인

SSH 키가 제대로 설정되었는지 확인한다.

ssh -T git@github.com

정상적으로 설정되었다면 아래와 같은 메시지가 출력된다.

Hi your-github-username! You've successfully authenticated, but GitHub does not provide shell access.

중간에 yes 한번 쳐줘야된다.


6️⃣ GitHub 레포지토리 클론하기

이제 GitHub에서 SSH 방식으로 레포지토리를 클론할 수 있다.

git clone git@github.com:your-github-username/your-repository.git
성공!

🎯 정리

id_ed25519_github SSH 키 생성
ssh-agent에 추가
✅ GitHub에 SSH 키 등록
~/.ssh/config에 설정 추가
✅ SSH 키 정상 작동 확인 후 git clone 수행


 

참고

 

새 SSH 키 생성 및 ssh-agent에 추가 - GitHub Docs

SSH(Secure Shell Protocol)를 사용하여 GitHub의 리포지토리에서 데이터에 액세스하고 쓸 수 있습니다. SSH를 통해 연결할 때 로컬 머신에서 프라이빗 키 파일을 사용하여 인증합니다. 자세한 내용은 SSH

docs.github.com

 

 

GitHub SSH Key 확인

GitHub SSH Key 확인 1. SSH Key 파일 확인일반적으로 SSH 키는 ~/.ssh 디렉토리에 저장 됨.➜ ls -al ~/.ssh 1-1. 이 파일이 있다면 ssh 키 존재- id_ed25519             // 비공개 SSH 키 파일 (절때 공개되면

hwivelop.tistory.com