Local Git에서 Git Hub로 push할 경우 permission deny문제

배경

Jekyll을 로컬에서 수정하고 싶어서 Github의 repository와의 연동을 시도했으나, 다음과 같은 에러 메세지가 떴다.

Error message

포인트

Local에 저장되어있는 Keychain에서, Github.com의 account와 password를 현재 사용하는 깃허브의 계정으로 변환

과정

1
2
3
4
5
1) Mac에서 Keychain이라는 어플리케이션을 연다.
2) github.com을 검색한다.
3) 속성에서 account와 password를 현 github계정으로 바꿔준다.
4) 원격 저장소의 git내용에 현 저장소에는 없는 내용이 있다면 git pull origin master 로 동기화 시켜준다.
5) git push origin master

깨달은 것

사실 생각해보면, git과 github를 연동하기 위해서는 github의 계정정보가 로컬에 반드시 있어야 한다. 그래야만 인증이 가능하기 때문이다.
그렇기 때문에, permission denied 에러가 생겼다는 것은 그 계정과 연관이 깊을 가능성이 크고, 그것을 바꿀 생각을 해야하는데 단순히 git.username git.email 만 변경한다고 해서 인증 에러를 해결할 수는 없는 것이다.

역시 본질에 입각해서 생각하면 문제의 본질을 이해할 수 있다.

참조

  1. Permission denied error and Keychain Access
  2. GitHub::Updating credentials from the OSX Keychain
  3. GItHub::Dealing with non-fast-forward errors
Share