command line 노트

갑자기 터미널에서 git 권한이 없다며 push에 실패할 때

Jonchann 2020. 5. 6. 03:38

2년동안 대학원 연구로 사용해오던 맥북이 요새 회사 맥북만 썼다고 갑자기 git 인증 실패를 뿜어냈다.
이게 뭔일...

Username for 'https://github.com': USER_NAME
Password for 'https://USER_NAME@github.com': 
remote: Invalid username or password.
fatal: 'https://github.com/USER_NAME/REPOSITORY.git/' 鉴权失败

ssh를 확인해보니 권한이 없단다.

$ ssh -T USER_NAME@github.com  
USER_NAME@github.com: Permission denied (publickey).

~/.ssh/config를 보아하니 대학원 서버에서의 접속만 가능하게 되어있었다(아마 이게 이유였던듯).
(하지만 이번 해결 방법은 이걸 해소한 것은 아닌 듯 싶기도 하니 다른 레포지토리로 push할 일 생기면 또 에러가 날 수도 있다)

 

MAC ) git 문제 Permission denied (publickey).대로 진행한 뒤, 아래 커맨드에서 git 패스워드를 입력해주면 인증이 되었다는 것을 확인할 수 있다.
-vT 옵션을 사용하면 debug할 수 있게 로그와 함께 출력이 되는데

$ ssh -vT git@github.com

간단하게 보자면

$ ssh git@github.com

만 실행하면 된다.

Enter passphrase for key '/Users/user/.ssh/id_rsa': 
PTY allocation request failed on channel 0
Hi USER_NAME! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

but GitHub does not provide shell access라는 문구가 함께 나와 찝찝하겠지만 무시해도 된다.

 

GitHub: invalid username or password 에 달린 답 같이

$ git remote set-url origin git@github.com:your/repository_name.git

를 실행하면 push가 가능해진다.

 

잘 됐는지 결과를 보고 싶다면 아래 커맨드를 실행하면 된다.

$ git config -l

 

이걸 다 하고도 에러가 난다면 ssh 주소로 바꿔서 등록해보자.

$ git remote set-url origin git@github.com:git@github.com:{user_name}/{repository_name}.git

그래도 fatal에러가 난다면 일단 원격 저장소가 제대로 있는지 확인한다.

$ git remote -v

 

잘 있는 것이 확인되지만 안되는건 안되는거다.

{where_repository_is}  git@github.com:{user_name}/{repository_name}.git (fetch)
{where_repository_is}  git@github.com:{user_name}/{repository_name}.git (push)

그럴 땐 일단 origin을 삭제하고 다시 만들면 된다.
여기서 origin(where_repository_is)은 각자 상황에 맞게 대입하면 된다.

$ git remote remove {where_repository_is}
$ git remote add origin git@github.com:{user_name}/{repository_name}.git

드디어 성공이다.