git@github.com: Permission denied (publickey) 오류 해결법

미남잉·2025년 4월 10일
0

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Github와 SSH 인증을 시도했을 때, 등록된 공개키가 없어서 위와 같은 오류가 발생한다.

  • Git은 SSH 방식(git@github.com)으로 접근 시도
  • 하지만 로컬에 있는 SSH 공개키가 GitHub 계정에 등록되지 않아서 인증 실패
  • 그래서 "Permission denied (publickey)" 오류 발생

해결 과정

  1. SSH 키 존재 여부 확인
ls ~/.ssh

id_ed25519 와 id_ed25519.pub이 없다면, 키가 없다는 뜻이니 새로 생성

저의 경우 known_hosts이 떴음

처음 어떤 호스트(GitHub 등)에 SSH로 접속할 때, 그 호스트의 서명(fingerprint) 을 저장해두는 파일이 ~/.ssh/known_hosts로 SSH 인증키를 Github에 등록해주면 됨

  1. SSH 키 생성
ssh-keygen -t ed25519 -C "your_email@example.com"

없으면 키를 만드세요

Enter 3번 눌러주면 됨

  1. 키 등록
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

SSH 인증을 위한 준비가 완료되었음

  1. Github에 공개키 등록
cat ~/.ssh/id_ed25519.pub
  • GitHub 접속 → https://github.com
  • 우측 상단 프로필 아이콘 클릭 → Settings
  • 좌측 메뉴에서 SSH and GPG keys 클릭
  • 오른쪽 상단 New SSH key 클릭
  • 아래 항목 채우기:
Title:) My Mac SSH Key (원하는 이름)
Key: 방금 복사한 ssh-ed25519 ... 전체 붙여넣기
  • Add SSH key 버튼 클릭
  1. SSH 연결 테스트
ssh -T git@github.com

성공하면 이렇게 뜸!

Hi USERNAME! You've successfully authenticated...


  1. SSH (Secure Shell)
  • 원격 서버와 안전하게 통신하기 위한 프로토콜
  • GitHub 같은 서비스에 비밀번호 없이 인증할 수 있게 도와줌
  1. SSH 키(Key) 쌍
  • 공개키(public key): 누구에게나 보여줘도 되는 키 (GitHub에 등록)
  • 비공개키(private key): 절대 노출되면 안 되는 키 (로컬에만 있어야 함)

→ 두 개가 짝을 이루어 작동하며, GitHub는 등록된 공개키로 로컬의 비공개키를 확인함

  1. SSH 인증 방식 vs HTTPS 인증
  • git@github.com:... → SSH 방식 (키 인증)
  • https://github.com/... → HTTPS 방식 (매번 ID/PW 또는 Personal Access Token 입력 필요)

→ 보통 SSH 방식이 더 편하고 안전해서 선호됨

  1. known_hosts
  • SSH가 접속했던 서버의 신원(지문)을 저장해 놓은 파일
  • 처음 접속 시 "이 호스트 진짜 맞아?" 하고 물어보는 이유는 보안 때문
  1. ssh-agent & ssh-add
  • ssh-agent: SSH 인증을 백그라운드에서 관리해주는 도우미
  • ssh-add: SSH 키를 ssh-agent에 등록해서 매번 입력하지 않도록 함
  1. GitHub에 SSH 키 등록
  • GitHub는 계정과 연결된 공개키 목록을 갖고 있고, git 작업 시 로컬의 비공개키와 쌍이 맞는 공개키가 등록되어 있어야 인증 가능
  1. Permission denied (publickey) 오류
  • SSH 방식인데 GitHub에 등록된 공개키가 없거나, 키 쌍이 안 맞거나, ssh-agent에 키가 추가 안 됐을 때 발생
  • ~/.ssh/ 디렉토리: SSH 관련 파일들이 저장되는 기본 경로
  • cat 명령어: 텍스트 파일 내용 출력할 때 사용
  • .pub 확장자는 공개키 파일

이상입니다.

profile
Computer Vision Engineer

0개의 댓글