Git을 설치하고 커밋까지는 했는데, push/pull 할 때마다 비밀번호를 묻거나, 갑자기 Permission denied (publickey)가 터지면 흐름이 끊깁니다.

이 글은 macOS 기준으로 GitHub SSH Key 세팅을 “처음부터 끝까지” 한 번에 정리한 가이드예요. 설정이 끝나면 터미널/VSCode 어디서든 GitHub SSH Key로 비밀번호 없이 push/pull 이 됩니다.


GitHub SSH Key 세팅 2026 썸네일: 비밀번호 없이 push/pull 및 Permission denied(publickey) 해결

함께 보면 좋은 글
① Git 설치 & 초기 설정 2026: user.name/email, 기본 브랜치(main), 줄바꿈(LF/CRLF)까지 한 번에
SSH 전에 Git 기본 세팅(이름/이메일/브랜치/줄바꿈)을 먼저 잡아두면, 인증 문제를 훨씬 덜 겪습니다.

→ 바로 읽기


GitHub SSH Key 세팅이 필요한 이유 (HTTPS vs SSH)

HTTPS는 토큰/비밀번호를 자주 요구하고, 토큰 만료/권한 갱신 이슈가 생각보다 자주 납니다. 반면 GitHub SSH Key는 한 번만 제대로 잡아두면, 이후에는 키로 서명하듯 인증해서 push/pull 속도가 안정적이고, 자동화(CI/서버 배포)에도 유리합니다.

  • 이럴 때 특히 추천: VSCode에서 자주 push/pull, 서버(원격)에서 git 사용, 여러 레포를 매일 다룸
  • 자주 막히는 지점: 키가 여러 개일 때, ssh-agent 미등록, known_hosts 충돌, 레포 URL이 https로 남아있음


10분 컷: GitHub SSH Key 세팅(맥) 단계별 체크리스트

1) SSH 키 생성 (ed25519 추천)

아래 명령으로 키를 만들고, 파일명은 기본값을 그대로 써도 됩니다. 패스프레이즈(passphrase)는 “보안 강화용”이라 선택 사항이지만, 회사/중요 레포면 설정을 권장합니다.

ssh-keygen -t ed25519 -C "your_email@example.com"
  • 생성 위치(기본): ~/.ssh/id_ed25519, 공개키: ~/.ssh/id_ed25519.pub
  • 핵심: GitHub에는 .pub(공개키)만 등록합니다.

2) ssh-agent 실행 & 키 등록 (macOS Keychain 연동)

여기서 삐끗하면 GitHub SSH Key를 만들어도 계속 비밀번호/패스프레이즈를 묻게 됩니다. 아래대로 진행해 주세요.

eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

만약 옵션이 동작하지 않거나 오래된 macOS 환경이면, ssh-add ~/.ssh/id_ed25519로 먼저 등록 후 Keychain 저장 여부를 확인해도 됩니다.


3) 공개키 복사 → GitHub에 등록

pbcopy < ~/.ssh/id_ed25519.pub

GitHub → Settings → SSH and GPG keys → “New SSH key”에서 붙여넣기 후 저장합니다. (등록 후 바로 테스트까지 이어가면, 이후 오류를 크게 줄일 수 있어요.)


4) 연결 테스트 (가장 중요)

ssh -T git@github.com
  • 성공 예시: “Hi username! You've successfully authenticated…”
  • 실패하면: 아래 “권한 오류 Top 7”에서 해당 증상을 바로 찾으면 됩니다.

5) 레포 URL을 SSH로 바꾸기 (HTTPS 남아있으면 계속 인증 요구)

현재 원격 주소를 확인하고, https면 ssh로 변경하세요.

git remote -v
git remote set-url origin git@github.com:USERNAME/REPO.git
git remote -v

이제부터는 GitHub SSH Key로 push/pull 할 때 비밀번호 없이 진행됩니다.



함께 보면 좋은 글
② Homebrew 2026 설치 가이드: brew command not found/권한 오류까지 한 번에 해결(맥북)
ssh/openssl 관련 도구를 추가로 깔아야 하는 상황이면 Homebrew가 가장 빠릅니다. 설치/권한 문제부터 정리하고 오세요.

→ 바로 읽기


권한 오류 Top 7: 증상 → 원인 → 해결 (표로 한 번에)

증상(에러 메시지) 가장 흔한 원인 바로 적용 해결
Permission denied (publickey) GitHub에 공개키 미등록 / 다른 키를 들고 감 / ssh-agent에 키 없음
  1. ssh -T git@github.com로 재현 확인
  2. ssh-add -l에 키가 없으면 ssh-add --apple-use-keychain ~/.ssh/id_ed25519
  3. GitHub에 id_ed25519.pub가 등록됐는지 확인
Host key verification failed known_hosts 충돌(이전 키 기록) / 중간에 네트워크 변경 ssh-keygen -R github.com
다시 ssh -T git@github.com 실행
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED known_hosts에 저장된 호스트 키와 현재 키가 다름 ssh-keygen -R github.com
(그래도 남으면 ~/.ssh/known_hosts에서 github.com 줄만 제거)
Could not open a connection to your authentication agent ssh-agent가 꺼짐 / 세션이 새로 열림 eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Repository not found 레포 URL 오타 / 권한 없는 레포 / org SSO 미승인
  1. 레포 URL 재확인(git remote -v)
  2. GitHub에서 해당 레포 접근 권한 확인
  3. 조직(Org)이면 SSO/권한 승인 여부 확인
fatal: Could not read from remote repository SSH는 되는데 레포 권한이 없음 / origin이 https로 남아있음 git remote set-url origin git@github.com:USER/REPO.git
이후 push 재시도
Enter passphrase for key ... (매번 뜸) Keychain/ssh-agent 저장이 안 됨 ssh-add --apple-use-keychain ~/.ssh/id_ed25519
그리고 터미널을 완전히 재시작 후 재확인


키가 여러 개인 사람(회사/개인 분리) 필수: ~/.ssh/config 예시

회사/개인 계정, 혹은 레포별 키를 나눠 쓰면 GitHub SSH Key가 꼬이는 경우가 많습니다. 아래처럼 ~/.ssh/config로 “어떤 호스트에 어떤 키를 쓸지” 고정해 두면 안정적이에요.

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519
  AddKeysToAgent yes
  UseKeychain yes

이후 ssh -T git@github.com로 정상 인증되는지 다시 확인하세요.


VSCode에서만 안 될 때 체크 3가지

  • 내장 터미널 쉘: VSCode 터미널에서 ssh -T git@github.com가 되는지 먼저 확인
  • 원격 URL: VSCode 소스제어는 origin이 https면 다시 인증을 요구할 수 있음 → SSH로 변경
  • 키체인/에이전트: VSCode를 먼저 켜둔 상태에서 키 등록이 안 잡힌 경우가 있어, VSCode 재시작이 빠른 해결책


함께 보면 좋은 글
③ VSCode 맥북 세팅(입문) 2026: 설치부터 한글 입력, 필수 확장 10개까지 한 번에
VSCode에서 Git 인증이 꼬이면 “설정/터미널/확장”이 원인인 경우가 많습니다. 기본 세팅을 한 번에 점검해 보세요.

→ 바로 읽기


바로 적용 CTA

이 글대로 했는데도 계속 막힌다면, 아래 2가지만 다시 확인하면 해결되는 경우가 많습니다: (1) ssh -T가 성공하는지, (2) origin이 SSH인지.


FAQ (자주 묻는 질문)

Q1. GitHub SSH Key 세팅을 했는데도 “Permission denied (publickey)”가 떠요.

가장 흔한 원인은 “GitHub에 공개키를 안 올렸거나(또는 다른 키를 올렸거나)”, “ssh-agent에 키가 등록되지 않은 상태”입니다. 먼저 ssh -T git@github.com로 인증이 성공하는지 확인하고, 실패하면 ssh-add -l로 현재 로딩된 키를 보세요. 키가 없으면 ssh-add --apple-use-keychain ~/.ssh/id_ed25519로 등록 후 재시도하면 대부분 해결됩니다.



Q2. “Enter passphrase for key …”가 매번 떠요. 자동으로 저장되게 할 수 없나요?

가능합니다. macOS는 Keychain 연동이 핵심이에요. eval "$(ssh-agent -s)"로 에이전트를 켠 뒤 ssh-add --apple-use-keychain ~/.ssh/id_ed25519로 키를 등록하면, 다음부터는 같은 세션/환경에서 패스프레이즈를 반복 입력하는 일이 크게 줄어듭니다. 그래도 반복되면 VSCode/터미널을 완전히 재시작하고, ssh-add -l에 키가 유지되는지 확인해 주세요.



Q3. VSCode에서는 안 되는데 터미널에서는 돼요. 왜 이런가요?

VSCode는 “내장 터미널 세션”, “원격 URL(HTTPS/SSH)”, “에이전트/키체인 인식”이 따로 놀 때가 있습니다. 먼저 VSCode 터미널에서 ssh -T git@github.com가 되는지 확인하고, 된다면 git remote -v에서 origin이 SSH인지 점검하세요. 마지막으로 키 등록을 나중에 했다면 VSCode 재시작만으로도 해결되는 경우가 많습니다. 즉, 인증 자체보다 “앱이 들고 있는 세션” 문제일 확률이 높아요.

정리하면, GitHub SSH Key 세팅은 “키 생성 → 에이전트 등록 → GitHub 등록 → ssh -T 테스트 → 원격 URL SSH 변경” 5단계만 확실히 하면 끝입니다. 막히면 표의 Top 7에서 메시지 그대로 찾아서 순서대로만 적용해 보세요.