GitHub 인증 방식 정리 — HTTPS, PAT, SSH

농담곰·2026년 6월 4일

GitHub에 코드를 push하거나 pull할 때, 내부적으로 "내가 누구인지" 를 증명하는 과정이 필요하다.
이걸 인증(Authentication) 이라고 하는데, GitHub은 크게 세 가지 방식을 지원한다.

  • HTTPS — 가장 기본적인 방식. 처음 설정이 거의 없어서 입문자들이 무의식 중에 사용하는 방법
  • Personal Access Token (PAT) — HTTPS의 연장선. GitHub이 2021년부터 비밀번호 직접 입력을 막으면서 도입된 방식
  • SSH — 키 파일로 인증하는 방식. 설정이 조금 복잡하지만 한 번 해두면 가장 편하고 안전하다

1. HTTPS

개념

레포지토리 주소가 https://github.com/... 형태인 방식이다.
아이디와 비밀번호(또는 PAT)로 인증하며, 한 번 로그인하면 OS의 자격증명 저장소(Mac Keychain, Windows 자격증명 관리자 등)에 저장되어 이후엔 자동으로 처리된다.

어떤 때 쓰나

  • 빠르게 개인 프로젝트를 시작할 때
  • 보안보다 편의성이 우선일 때
  • SSH 설정이 번거롭게 느껴질 때

사용법

# 레포 클론 (HTTPS 주소 사용)
git clone https://github.com/유저명/레포이름.git

# 현재 연결 방식 확인
git remote -v
# 출력 예시: origin  https://github.com/유저명/레포이름.git (fetch)

처음 push/pull 시 아이디와 비밀번호(또는 PAT)를 입력하면, 이후엔 자동으로 저장되어 묻지 않는다.


2. Personal Access Token (PAT)

개념

GitHub은 2021년 8월부터 HTTPS 인증 시 비밀번호 직접 입력을 차단했다.
대신 PAT(Personal Access Token) 이라는 별도의 토큰을 발급받아 비밀번호 자리에 입력해야 한다.

쉽게 말하면 비밀번호 대신 쓰는 1회 발급형 임시 키 같은 개념이다.
권한(scope)을 세밀하게 설정할 수 있어서, 특정 레포에만 접근하거나 읽기 전용으로 제한하는 것도 가능하다.

어떤 때 쓰나

  • HTTPS 방식으로 사용하면서 GitHub의 비밀번호 인증이 막혔을 때
  • CI/CD 파이프라인, 스크립트에서 GitHub API를 호출할 때
  • 특정 권한만 부여한 제한된 토큰이 필요할 때

사용법

1. 토큰 발급

GitHub → Settings → Developer settings
→ Personal access tokens → Tokens (classic)
→ Generate new token
→ 권한 선택 (일반적으로 repo 체크)
→ Generate token → 토큰 복사 (이때만 볼 수 있으니 꼭 저장!)

2. push/pull 시 사용

git push origin main
# Username: 유저명
# Password: ghp_xxxxxxxxxxxxxxxxxxxx  ← 비밀번호 자리에 토큰 입력

3. 토큰을 자격증명에 저장 (매번 입력하기 귀찮을 때)

git config --global credential.helper store
# 이후 한 번만 입력하면 ~/.git-credentials 에 저장됨

⚠️ 토큰은 발급 직후에만 확인 가능하다. 잃어버리면 재발급해야 한다.


3. SSH

개념

SSH(Secure Shell)는 공개키/개인키 쌍을 이용해 인증하는 방식이다.

  • 개인키 (~/.ssh/id_ed25519) — 내 컴퓨터에만 보관. 절대 외부에 노출 금지
  • 공개키 (~/.ssh/id_ed25519.pub) — GitHub에 등록. 누가 봐도 괜찮음

GitHub에 공개키를 등록해두면, 내 컴퓨터의 개인키로 "나 맞아요"를 증명하는 방식이다.
계정 단위로 적용되기 때문에, 한 번 설정해두면 해당 계정의 모든 레포에 비밀번호 없이 접근할 수 있다.

레포 단위로 권한을 제한하고 싶다면 Deploy Key 를 따로 사용하면 된다.

어떤 때 쓰나

  • 개발 환경이 고정되어 있고, 매번 인증 입력이 귀찮을 때
  • 보안을 강화하고 싶을 때
  • 서버 자동 배포 스크립트를 구성할 때
  • 여러 GitHub 계정을 동시에 관리할 때

사용법

1. 키 생성

ssh-keygen -t ed25519 -C "your@email.com"
# 이후 엔터 3번 (경로, 비밀번호 기본값으로 설정)

2. 공개키 출력 후 복사

cat ~/.ssh/id_ed25519.pub
# 출력된 텍스트 전체 복사

3. GitHub에 공개키 등록

GitHub → Settings → SSH and GPG keys
→ New SSH key
→ 복사한 공개키 붙여넣기 → 저장

4. 연결 테스트

ssh -T git@github.com
# Hi 유저명! You've successfully authenticated, but GitHub does not provide shell access.

위 메시지가 나오면 성공!

5. 레포 클론 시 SSH 주소 사용

git clone git@github.com:유저명/레포이름.git

6. 기존 HTTPS 레포를 SSH 방식으로 전환

git remote set-url origin git@github.com:유저명/레포이름.git

# 변경 확인
git remote -v
# 출력 예시: origin  git@github.com:유저명/레포이름.git (fetch)

정리

HTTPSPATSSH
인증 수단아이디 + 비밀번호아이디 + 토큰공개키 / 개인키
설정 난이도쉬움보통조금 복잡
적용 범위레포마다 URL 설정레포마다 URL 설정계정 전체
보안보통권한 세분화 가능강함
추천 상황빠른 시작HTTPS + 세밀한 권한개발 환경 고정

사실 일반 개인 개발자라면 셋 다 큰 차이는 없다.
다만 SSH를 한 번 설정해두면 가장 편하고 보안도 좋기 때문에, 초반에 시간을 조금 써서 세팅해두는 걸 추천한다.

profile
둥글게살자

0개의 댓글