본문 바로가기
DevOps/Git

[해결 방법] Permission denied

by HJ0216 2023. 1. 16.

발생 Error

Git Bash에서 다음 명령어를 입력할 경우,

git add .

 

 warning: could not open directory ... permission denied

Error 발생

 

 

Error 원인

add 명령어를 실행하려는 사용자의 SSH keys가 등록되지 않아 접근 권한이 없어서 발생

 

 

해결 방법

사용자의 새로운 SSH keys를 생성

 

Git bash에서 아래와 같이 입력

ssh-keygen -t rsa -C "Github_email"

ssh-keygen: SSH 접속을 위한 인증 키를 생성, 관리 및 변환하는 명령어

옵션 -t: 어떠한 암호화방식을 사용할 것인지 지정

-> ssh-keygen -t rsa: RSA 암호*화 방식으로 SSH 키 생성

* RSA 암호: 공개키 암호시스템의 하나, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘

 옵션 -C (생략 가능): comment "키 명칭(임의 지정 가능)"

 

Enter passphrase (empty for no passphrase): 암호 입력

Enter same passphrase again: 암호 재입력

 

이후 출력되는 내용에서 공개키 저장 주소를 확인

Your public key has been saved in /c/Users/.../.ssh/id_rsa.pub

.pub 파일을 메모장으로 실행하고 전체 내용 복사

 

Github - Settings - SSH and GPG keys - New SSH key

Title: SSH key Name(임의 설정)

key: 전체 복사한 .pub 내용 붙여넣기

Github 계정 pw 입력 후 SSH keys 발급 완료

 

 

➕ SSH key 인증 방식

SSH key pair는 두 개의 암호키(public, private)로 이뤄져있으며, key pair 인증방식은 public key로 암호화한 메세지를 그 쌍이되는 private key로만 해석할 수 있음(암호화에 사용한 public key로도 암호화된 메세지 해석 불가)

클라이언트가 SSH key로 인증을 시도할 경우, 서버는 클라이언트가 private key를 갖고 있는지를 테스트한 후 갖고 있을 경우에만 클라이언트의 명령을 수행

 

 

참고 자료

📑 [Git] Permission Denied 에러 해결하기

📑 ssh 사용시 암호 대신 SSH key로 인증하기

📑 리눅스 ssh-keygen

📑 git@github.com: Permission denied (publickey) 해결 방법