본문 바로가기
NOTE/IT Information

[Git] GitHub SSH Key 생성 및 등록 방법

by DevAthena 2025. 5. 2.

SSH에 대해서 알아보기

 
🌿SSH 는 왜 사용하는 걸까?
SSH는 Secure Shell의 약자로, GitHub 같은 원격 서버와 안전하게 통신하기 위한 방식이다.

Git을 사용할 때는 주로 두 가지 방식(HTTPS, SSH) 중 하나로 인증하고 코드 push나 clone을 진행한다.

▽ Git에서 사용하는 두 가지 인증 방식은 아래와 같다.

방식주소 형태인증 방식
HTTPShttps://github.com/username/repo.gitGitHub ID & 비밀번호 or 토큰 입력
SSHgit@github.com:username/repo.git로컬의 SSH 키 ↔ GitHub에 등록된 공개 키

 
🌿SSH의 장점
1. 비밀번호 없이 push / clone 가능 : 한 번 설정하면 git push, git pull 할 때 매번 로그인을 안해도 된다.

2. 보안성 : 비밀번호 대신 암호화된 키 쌍 (public / private key) 으로 인증한다.

3. 토큰 갱신 불필요 : HTTPS는 요즘 토큰을 요구하고, 만료되면 다시 발급받아야 하지만, SSH는 그럴 필요가 없다.
 
비유적으로 말하자면
🔐 HTTPS (비밀번호 로그인) : 매번 집 비밀번호를 입력해야 들어갈 수 있다.

🗝️ SSH (열쇠 로그인) : 내가 가진 열쇠(비공개 키)와 도어락에 등록된 열쇠 정보(공개 키)가 맞으면 문이 자동으로 열린다.
 
🌿SSH는 어떻게 생겼을 까?
비공개 키~/.ssh/id_ed25519  (절대 남에게 공유 금지)
공개 키~/.ssh/id_ed25519.pub  (이걸 GitHub에 등록)
 


 

SSH를 등록해보기

 
1. SSH 키가 있는지 확인
터미널(또는 Git Bash)에서 다음 명령어를 입력해준다.

ls ~/.ssh

id_rsa와 id_rsa.pub 또는
id_ed25519와 id_ed25519 같은 파일이 있는지 확인한다.

( 위와 같은 파일이 있다면 SSH 키가 존재하는 것이다. )

 
2. SSH 키가 없다면 새로 생성

ssh-keygen -t ed25519 -C "your_email@example.com"

ssh-keygen  // SSH 키 쌍(공개키+비공개키)를 생성하는 기본 명령어
-t ed25519  // 어떤 암호화 알고리즘을 사용할지 지정 (ed25519는 최신/추천)
-C "comment 또는 만든이의 이메일같은" // 주석(comment)또는 누가 만든 키인지 표시
 
입력 도중 나오는 질문 
Enter file in which to save the key (/Users/계정아이디/.ssh/id_ed25519):

→ 그냥 Enter 누르면 기본 위치에 저장된다.

Enter passphrase (empty for no passphrase):

→ 키에 추가로 비밀번호 걸고 싶을 때 사용. 없이 하려면 그냥 Enter.

Enter same passphrase again:

→  비밀번호 확인. 없으면 그냥 Enter.

 
✋실수로 잘못 만들었거나 다시 만들고 싶다면?

rm ~/.ssh/my_custom_key
rm ~/.ssh/my_custom_key.pub

rm(삭제)명령어를 사용해서 위와 같은 방식으로 만들어진 공개키 + 비공개 키 쌍을 삭제하면 된다.
 
3. GitHub에 공개 키 복사
아래 명령어로 공개 키 내용 복사해준다.

cat ~/.ssh/id_ed25519.pub

ssh-ed25519 AAAAC3... // 같은 형식의 한 줄짜리 문자열을 복사 해둔다.
 
4. GitHub 사이트에 등록
GitHub 사이트에 계정 로그인
→ 우측 상단 계정 아이콘 클릭 후 메뉴에서 Settings
→ 왼쪽 메뉴에서 SSH and GPG keys 
→ SSH keys의 New SSH Key 에 복사해둔 내용 붙여넣기
Add SSH key로 등록 완료
 
이제 SSH를 등록 완료 했으니
git clone, git push, git pull 등을 문제 없이 SSH로 사용할 수 있다.
 


 

기록
나는 왜 SSH를 등록하려 했는가?
Git Client 프로그램 Fork 사용을 위해서

 
 
새로 연습하면서 사용할 Unreal Engine 코드들의 버전관리를 쉽게 하기 위해
Git을 이용하려했고 GUI로 좀 더 알아보기 쉽게 Fork라는 프로그램을 사용하려고 했다.
처음에 초기설정이 안된 상태에서 소스를 clone하려고 하다가 아래 알림을 보고 SSH 등록을 찾아보았다.
아래 오류메시지는 Git이 원격 저장소에 접근하려고 했지만 SSH 키 인증에 실패해서 발생하는 것으로,
해당 SSH 주소로 접근하려고 했는데 GitHub에서 컴퓨터의 공개키를 인식하지 못했다는 것이다.

Cloning into 'C:\Users\myComputer\Test_UnrealEngine'... git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.