SSH에 대해서 알아보기
🌿SSH 는 왜 사용하는 걸까?
SSH는 Secure Shell의 약자로, GitHub 같은 원격 서버와 안전하게 통신하기 위한 방식이다.
Git을 사용할 때는 주로 두 가지 방식(HTTPS, SSH) 중 하나로 인증하고 코드 push나 clone을 진행한다.
▽ Git에서 사용하는 두 가지 인증 방식은 아래와 같다.
방식 | 주소 형태 | 인증 방식 |
HTTPS | https://github.com/username/repo.git | GitHub ID & 비밀번호 or 토큰 입력 |
SSH | git@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.
'NOTE > IT Information' 카테고리의 다른 글
[Blog] 티스토리 블로그에 코드 예쁘게 넣는 방법 (1) | 2025.05.02 |
---|---|
[Git] 언리얼 엔진 Git Ignore 파일 | unreal engine gitignore (0) | 2025.05.01 |
[Window] 윈도우 사용자 계정명, 계정 폴더한글->영어로 바꾸기 (0) | 2025.04.28 |
[Framework] 게임 프레임워크 비교 | MonoGame | Cocos2d-x (0) | 2025.04.23 |
[Mac] 맥북 크롬 화면 스크롤 전체 스크린 캡쳐 (0) | 2024.05.10 |