우분투 os 터미널에서 기존에는 링크 기반으로 git clone이 잘 되었었는데, 보안이 강화되면서 깃허브가 2021.08.31일부로 더 이상 HTTPS 기반의 사용자 이름 + 비밀번호 방식 로그인을 허용하지 않아 다음과 같은 오류가 발생하게 되었다.
(base) sallysooo@labor:~/Desktop$ git clone https://github.com/sallysooo/MATCHA_w0r1d.git
Cloning into 'MATCHA_w0r1d'...
Username for 'https://github.com': sallysooo
Password for 'https://sallysooo@github.com':
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: Authentication failed for 'https://github.com/sallysooo/MATCHA_w0r1d.git/'
특히 내가 clone하려고 하는 레파지토리는 현재 작업 중인 private 작업소여서 인증이 필수이므로 단순 git clone으로는 불가능함을 파악하였음
이를 해결하기 위한 방식은 다음과 같이 크게 2가지가 존재한다. (저는 2번째 방식인 ssh를 사용했습니다)
1. Personal Access Token (PAT) 사용
: github에서 비밀번호 대신 토큰을 발급받아 사용하는 방식
- https://github.com/settings/tokens로 이동
> "Fine-grained token" or "Classic token" 생성
> repo 권한 체크 > 생성
> 토큰 복사해두기 (한 번만 보여집니다)
- 이후 git clone 시 앞서 생성한 토큰을 아래 코드에 넣어 사용하면 됨
git clone https://<유저명>:<토큰>@github.com/<유저명>/<레파지토리명>.git
- 또는 이후 git pull 등에서도 token 입력하라는 창이 뜨면 비밀번호 대신 토큰 붙여넣으면 된다.
2. SSH 방식으로 Clone
HTTPS 대신 SSH 방식을 쓰는 것이 보안상 권장되기도 하고 더 편해서 나는 공개키를 만들어서 등록하였다.
1. SSH 키 생성 (없을 경우 생성)
ssh-keygen -t ed25519 -C "your_email@example.com"

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/yourname/.ssh/id_ed25519): [Enter]
Enter passphrase (empty for no passphrase): [선택적으로 입력 또는 그냥 Enter]
명령 입력 후 위 문구들에 대해 다 엔터를 눌러주면 ~/.ssh/id_ed25519.pub 파일이 정상적으로 생성된 모습을 볼 수 있다.
이렇게 하면 위 경로(/home/유저이름/.ssh/id_ed25519)에 개인 키 id_ed25519 & 공개 키 id_ed25519.pub 가 생성된다~
2. SSH 공개키를 깃허브에 등록하기
cat ~/.ssh/id_ed25519.pub

깃허브에 공개 키의 내용을 복사해야 하기 때문에 cat으로 해당 내용을 출력해서 복사해준다.

그 후 https://github.com/settings/ssh/new 에 들어가면 위와 같은 화면이 나오는데,
여기에 앞서 복사했던 공개 키 내용을 'Key' 부분에 붙여넣으면 되며, title은 지정하고 싶은 대로 지정 후 Add SSH key 버튼을 누르면 저장된다.
3. SSH agent 시작 및 key 추가
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

ssh-add에서 authentication 오류가 발생한다면 ssh-agent가 켜지지 않은 상태이므로, 반드시 위의 eval 명령을 먼저 실행해주자.
4. SSH 접속 테스트
ssh -T git@github.com

ssh -T 명령 입력 후 위 사진과 같이 "Hi 유저명! You've successfully ~~" 문구가 보이면 SSH 인증에 성공한 것이다.
5. SSH 주소로 git clone
git clone git@github.com:유저명/레파지토리명.git

이제 ssh key가 등록되었으니 이렇게 하면 이제 HTTPS 대신 비밀번호나 토큰이 없이도 인증이 가능해진다.
앞으로 해당 방법으로 git clone을 진행하여 레파지토리에 접근하면 된다!
'Linux' 카테고리의 다른 글
| [Ubuntu] 리눅스 터미널에서 작업관리자/메모리/디스크 용량 확인 방법 - 우분투 24.04 (0) | 2025.12.29 |
|---|---|
| [Ubuntu] Github : this exceeds GitHub's file size limit of 100.00 MB 오류 해결 | git push [remote rejected] error | BFG Repo-Cleaner (2) | 2025.07.10 |
| [Ubuntu] 우분투 24.04 카카오톡 설치 방법 (2) | 2025.06.27 |
| [Linux] Byobu 란 무엇인가 — Byobu(뵤부) 사용법 및 단축키 모음 (1) | 2025.06.26 |
| [Ubuntu] 네트워크 오류 해결 방법 - 우분투 22.04 인터넷 연결 안됨 (0) | 2025.04.04 |