문제 상황
git config으로 mergetool을 변경하려던 중에 이와 같은 에러가 발생했다.
에러 메세지를 보니 Permission denied. 즉, 허가 거부가 되어 권한이 없다고 한다.
그래서 지금의 경우 VS code에 터미널에서 bash를 사용하고 있었기 때문에 별도로 git bash 터미널을 관리자 모드로 열고 다시 같은 명령을 해봤지만 역시 같은 결과가 나온다.
기기를 바꾼 것도 아니고 얼마 전에도 같은 방식으로 config을 설정할 때는 별 일이 없었는데, 갑자기 이렇게 인증 문제가 발생한 것에 대해서 의아하긴 했지만 검색해봐도 나와 같은 케이스는 없었기 때문에 우선 다른 사람들의 케이스를 가지고 주어진 문제부터 해결해보기로 했다.
해결 방법
우선 이 문제는 사용자의 SSH keys가 등록되지 않아 접근권한이 없어서 발생한 것으로, 해결 방법은 이 SSH keys를 새로 생성하면 된다.
1. 터미널을 열어서 아래의 명령어를 실행한다.
$ ssh-keygen -t rsa -C "yourgit@email.com"
당연하겠지만 저 double quote("") 안에는 자신의 git 이메일 주소를 적으면 된다.
저 SSH key를 생성해서 tar로 압축된 내용을 확인(-t)하고, rsa의 경로(-C)를 내 git 이메일 주소로 지정하게 된다.
2. 패스워드 설정
여기서 터미널에 나오는 지시대로 따라주면 되는데, 저 결과 확인창에서 Enter를 하게 되면
패스워드를 설정하라고 나오고, 이 지시까지 따르게 되면, 아래와 같은 화면을 볼 수 있다.
3. public key 복사
Your public key has been saved in /c/Users/*****/.ssh/id_rsa.pub.
패스워드 설정 이후 나오는 화면에서 위와 같이 공개키가 어디에 저장되어 있는지 경로를 알려주는데,
이 경로로 이동해서 해당 파일을 메모장으로 실행하고 그 내용을 복사할 수 있다.
혹은 cat <경로> 를 통해서 터미널에서도 public key 내용을 확인할 수 있다.
$ cat ~/.ssh/id_rsa.pub
그렇게 하고 나면 대략 ssh-rsa ***** [내 경로 정보 = 이메일] 같은 형식의 긴 텍스트를 볼 수 있는데,
그 내용을 하나도 빠트리지 않고 전부 복사해야한다.
4. github에 로그인 후 settings로 이동
5. 좌측 메뉴에 있는 SSH and GPG keys로 이동
6. New SSH key 버튼 클릭
7. 타이틀, Key에 값을 입력
Title에는 SSH key 이름을 어떤 것으로 할지 사용자가 임의로 작성하는 부분이고,
key에는 아까 복사한 public key를 그대로 붙여넣어주면 된다.
그리고 add SSH key 클릭을 하면 사용자 확인에 필요한 github 계정의 패스워드를 입력받은 후
정상적으로 SSH keys가 발급되는 것을 확인할 수 있다.
8. 결과 확인
터미널을 새로 키고 아까와 같은 명령어를 입력하자 전에 있던 에러가 사라지고 루트에 있는 git config을
살펴보니 정상적으로 동작하는 것을 확인할 수 있었다.