본문 바로가기
Front-end

Git push 오류 HTTP 400 해결: HTTPS를 SSH로 전환하는 방법 (Mac)

by suyeonnie 2024. 11. 23.

😈 문제 : Git push 오류 (HTTP 400)

 
git clone 할 때 https로 써서 그런지?? 원인은 아직 정확하지 않은데, https로 git clone한 레포는 Git push 할 때마다 http 400 오류가 뜬다. 근데 또 매번 그러는게 아니라서 원인이 https다!!!라고 자신 있게 말은 못하겠다. 
 
오늘은 다른 분의 블로그 글을 보고 해결했지만, 날 잡아서 깃/깃허브 공부가 필요할 것 같다. 와 세상에 공부할 게 너무 많아. 신난당
 
 
[▼ http 400 오류]

git push origin
오브젝트 나열하는 중: 25, 완료.
오브젝트 개수 세는 중: 100% (25/25), 완료.
Delta compression using up to 8 threads
오브젝트 압축하는 중: 100% (19/19), 완료.
error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
send-pack: unexpected disconnect while reading sideband packet
오브젝트 쓰는 중: 100% (22/22), 4.43 MiB | 6.44 MiB/s, 완료.
Total 22 (delta 1), reused 0 (delta 0), pack-reused 0
fatal: the remote end hung up unexpectedly
Everything up-to-date

 
 
HTTPS 프로토콜로 푸시하는 경우 인증 문제나 URL 설정이 잘못됐을 수 있다고 한다. 리모트 URL이 Https로 시작하는 경우 ssh 로 전환을 고려하라고 해서..바로 확인해봤다.
 

 
 
https로 시작해서 바꾸기로함.
 
 

🧩  해결 : HTTPS를 SSH로 전환하기

// 1. 새로운 키 생성 및 등록
ssh-keygen -t rsa -b 4096 -C "email@gamil.com"

// 2. Github에 ssh키 추가

// 3. 리모트 URL 변경 (현재 https를 ssh로 전환)
git remote set-url origin git@github.com:<username>/<repository>.git

// 4. 변경 확인
git remote -v

 
1. 새로운 키 생성 및 등록

  • 새로 생성된 ssh키는 기본적으로 `~/.ssh/id_rsa`에 저장됨
  • 공개키를 확인 :
cat ~/.ssh/id_rsa.pub
  • `ssh rsa~`로 시작하는 키 깃허브에 가서 붙여넣기 해야함

 
2. Github에 ssh키 추가 
[설정] - [Access] - [SSH and GPG keys]
 
3. 리모트 URL 변경

// 현재 https를 Ssh로 전환
git remote set-url origin git@github.com:suyeon-dev/Suyeon-Archive.git

// 변경 확인
git remote -v

 
아래와 같이 표시되면 성공 :
origin  git@github.com:{Id}/{repo 이름}.git (fetch)
origin  git@github.com:{id}/{repo 이름}.git (push)
 
 
 


참고
 
Git Push 오류 (error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400)