🐢 꼬부기 LV.1 | 개념•기초/💧물대포(핵심개념)

PAT 와 SSH

서화 2026. 2. 27. 11:22

git push 인증에러를 해결할때 PAT 방식을 사용했다 PAT와 SSH의 개념을 정리해보자

✔️ PAT와 SSH는 “깃 전용”이 아니라 인증 방식이다

Git을 쓰다 보면 “PAT로 인증하세요”, “SSH 키 등록하세요” 같은 말을 자주 보게 된다
하지만 PAT와 SSH는 Git만의 기능이 아니라, 원격 서비스나 서버에 안전하게 접근하기 위한 인증 방식이다
Git은 원격 저장소에 접근할 때 이 인증 방식을 “가져다 쓰는” 사용자 중 하나다

⭐ PAT(Personal Access Token)란?

PAT는 GitHub/GitLab 같은 서비스가 발급해주는 토큰(대체 비밀번호) 이다
즉, “이 요청이 누구인지 / 어떤 권한인지”를 확인하기 위해 비밀번호 대신 토큰을 사용한다

🔎PAT는 어디에 쓰나?

PAT는 Git 명령어에만 쓰이는 게 아니라, 그 서비스에 인증이 필요한 모든 곳에서 쓰인다

  • Git HTTPS 인증: clone/push/pull 할 때 비밀번호 대신 사용
  • API 호출 인증: GitHub API, GitLab API 요청 시 토큰으로 인증
  • CI/CD 자동화: Actions, Jenkins, GitLab CI 등에서 저장소 접근 권한 부여
  • 패키지/레지스트리 접근: 서비스가 제공하는 패키지 저장소 접근에도 활용

여기서 CI/CD란 코드 변경을 자동으로 검사하고(테스트) 배포까지 이어주는 자동화 흐름이다

  • CI(지속적 통합): 코드가 올라오면 자동으로 빌드·테스트를 돌려서 문제를 빨리 발견하는 단계다
    예) PR 올리면 테스트가 자동 실행됨
  • CD(지속적 제공/배포): CI를 통과한 코드를 배포 가능한 상태로 만들거나 실제로 배포까지 자동으로 진행하는 단계다
    예) 테스트 통과 → 서버에 자동 배포(또는 승인 후 배포)

CI/CD에서 PAT가 필요한 이유는, 자동화 도구가 저장소를 clone/pull 하거나 릴리즈/패키지 업로드를 할 때 인증이 필요해서 토큰(PAT)을 사용하기 때문이다.

📌 PAT의 핵심 포인트

  • PAT는 보통 권한 범위(scope) 를 설정한다
    필요한 권한만 주는 구조라서, 비밀번호보다 관리가 명확해진다
  • PAT는 “서비스 발급 토큰”이기 때문에, 보통 해당 서비스 범위 안에서 사용한다.
    예: GitHub PAT는 GitHub 인증에 쓰인다

⭐ SSH(공개키/개인키)란?

SSH는 서버 원격 접속에 쓰이는 표준 기술이다
Git에서 SSH로 접근한다는 것은, 원격 저장소 접속에 SSH 방식을 쓰는 것이다

🔎 SSH는 어디에 쓰나?

Git뿐 아니라 개발/운영 환경에서 굉장히 범용으로 쓰인다

  • 서버 접속: ssh user@server
  • 파일 전송: scp, sftp, rsync -e ssh
  • 배포 자동화: 서버에 접속해 배포 스크립트 실행
  • 터널링/포트포워딩: 내부망 DB 등에 안전하게 접속

포트포워딩은 ‘외부에서 직접 못 들어가는 내부 DB’를, SSH로 암호화된 임시 통로를 만들어 로컬처럼 접속하는 방법이다

🛠️ Git에서 SSH 인증이 동작하는 구조

SSH 인증은 비밀번호 대신 키(공개키/개인키) 로 신원을 증명한다

  • 개인키(Private Key): 내 PC에만 보관하는 비밀키
  • 공개키(Public Key): GitHub 같은 원격 서비스에 등록하는 키

동작 흐름은 다음처럼 이해하면 된다.

  1. 내 PC가 원격 서비스에 접속 요청을 보낸다
  2. 원격 서비스는 “등록된 키 주인이 맞는지” 확인한다
  3. 내 PC는 개인키로 서명해서 주인임을 증명한다
  4. 원격 서비스는 등록된 공개키로 검증해서 맞으면 접근을 허용한다

정리하면, 개인키로 증명하고 공개키로 검증하는 방식이다

📌 PAT vs SSH, 무엇이 다른가?

둘 다 목적은 같다
원격 저장소에 안전하게 접근하기 위한 인증 방식이다

  • HTTPS + PAT: 토큰(대체 비밀번호)로 인증
  • SSH: 키(공개키/개인키)로 인증

Git에서 원격 주소 형태로도 구분된다

  • HTTPS 형태(주로 PAT와 함께): https://github.com/OWNER/REPO.git
  • SSH 형태(키 인증): git@github.com:OWNER/REPO.git

✔️정리

PAT는 Git 서비스가 발급하는 토큰 인증 방식이고, SSH는 공개키/개인키로 신원을 증명하는 원격 접속 표준 방식이다.
둘 다 Git 전용이 아니라 “인증/접속 방식”이라는 더 큰 개념이며, Git은 원격 저장소 접근에 이를 활용한다

https://kkobug2.tistory.com/197

 
 

git push 인증이슈 해결하기

팀플작업을 깃허브에 푸시하는 과정에서 발생한에러다🔎원인분석문구를 살펴보면 깃허브는 https로 push할때 계정비밀번호를사용할수 없는데 비밀번호대신 입력한 토큰이 저장된 값이 아니거

kkobug2.tistory.com