터미널에서 git clone 명령어를 입력하여 Github 레포지토리를 로컬에 클론할 수 있으며,
로컬 클론 방법은 총 세 가지(HTTPS, SSH, GitHub CLI)가 있다.
이 중 HTTPS와 SSH 방식이 주로 사용되며, 레포지토리가 Public이라면 git clone 명령어로 별 다른 인증 없이 클론이 가능하다.
하지만 Private인 경우 에러가 발생하며 추가 인증을 해 주어야 한다.
> HTTPS는 Token(PAT) 인증을, SSH는 SSH Key를 필요로 한다.
SSH(Secure Shell)?
: 컴퓨터끼리 네트워크를 통해 안전하게 통신할 수 있게 해주는 보안 프로토콜이다.
주로 '원격 서버 접속', '데이터 전송', '원격 제어' 등의 용도로 사용된다.
: Github에서 SSH를 사용하는 이유는 로컬과 Github 서버 간의 통신을 보안성 있게 인증하기 위함이다.
로컬에서 생성한 SSH Key를 Github에 등록하면, 비밀번호 없이 안전하게 Private 레포지토리에 접근할 수 있다.
✔️ 문제 상황
내가 맞닥뜨린 상황은 SSH 명령어로 클론했을 때
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
해당 오류가 나타났다. Private 레포지토리라서 SSH Key가 필요한 상황이었다.
✔️ 해결 방법: 로컬에서 SSH Key 생성 후 깃허브에 등록하여 해결
1. SSH(Secure Shell) 생성
ssh-keygen -t rsa -b 4096 -C "{본인아이디}@gmail.com"
ssh-keygen | SSH 키 생성 명령어 |
-t rsa | type(타입): RSA 방식으로 키 생성 |
-b 4096 | bit length(비트 수): 키 길이를 4096비트로 지정 *길수록 보안이 강함 |
-C "{이메일}" | comment(주석): 소유자 정보 |
* 최근에 ed25519 키 타입도 많이 사용된다고 한다. ssh-keygen -t edd25519 -C "{이메일}"
- 이후 다 엔터 후 id_rsa(개인키), id_rsa.pub(공개키)가 생성되는 걸 확인할 수 있다.
2. 공개키 확인
cat ~/.ssh/id_rsa.pub
- ssh-rsa 부터 본인 이메일까지 전체 다 포함해서 복사한다.
3. Github에 공개키 등록
3-1. Github > Settings > SSH and GPG Keys > New SSH Key 접속
3-2. Add new SSH Key 입력
- Key type: Authentication Key
- Key에 공개키 붙여넣기 *ssh-rsa랑 본인 e-mail 주소 포함하기
4. SSH clone 확인
- SSH 키 등록 후 다시 터미널에 git clone {SSH 명령어} 하면 클론이 되는 걸 확인할 수 있다.
✔️ Config 등록
: ~/.ssh/config 파일을 통해 여러 SSH 키를 관리하거나, 여러 Github 계정으로 접근할 때에 용이하다.
1. SSH config 파일 생성
# 터미널에서 파일 생성
nano ~/.ssh/config
# 내용 붙여넣기
Host github.com # 깃허브 서버 지칭. 변경 가능
HostName github.com # 실제 접속할 주소
User git # git 사용자로 접속
IdentityFile ~/.ssh/id_rsa # 생성해놓은 id_rsa 개인키 경로
2. 저장 후 권한 설정
chmod 600 ~/.ssh/config
3. 연결 확인
ssh -T git@github.com
✔️ PAT vs SSH Key 차이
'Git' 카테고리의 다른 글
[Git] 깃허브 commit 취소 및 되돌리기 (0) | 2025.04.24 |
---|