GitHub와 HTTPS를 통해 주고받으면 문제가 없겠지만 SSH 를 이용하면 더 빠르기때문에 SSH키를 GitHub에 공용키를 등록해줘야한다.


아마 이 키를 등록하지 않은 상태에서 GitHub와 통신을 하려고 시도하는 경우 "Permission denied (publickey)."관련 오류가 발생할 것이다. 


보통 유닉스 계열에서는 내장된 ssh-keygen 도구를 이용하여 키를 생성하지만, windows에서는 어디서 어떻게 키를 생성해야 하는지 잘 몰라서 한참 찾아서 정리해놓는다.


우선 git 클라이언트를 설치하게되면 Git 설치디렉토리 하단에 git-bash.exe 파일을 볼수 있다.



git-bash.exe  파일을 실행하면 다른 콘솔이 실행되는데 여기서 ssh-keygen -t rsa를 실행한다.



그리고 이렇게 생선된 키는 C:\Users\[윈도우사용자이름]\.ssh 하단에 id_rsaid_rsa.pub 파일이 각각 개인키 그리고 공용키가  생성되며 이 id_rsa.pub 파일의 내용을 Github ssh key 등록 부분에 등록해주게되면 된다.






추 가

로컬에서 SSH를 통해 git에 접근하려는 경우 git agent는 기본적으로 다음의 파일로 저장된 개인키를 이용하여 접속하려 노력합니다.

    • debug1: Trying private key: /Users/{user}/.ssh/id_rsa
    • debug1: Trying private key: /Users/{user}/.ssh/id_dsa
    • debug1: Trying private key: /Users/{user}/.ssh/id_ecdsa
    • debug1: Trying private key: /Users/{user}/.ssh/id_ed2551


그렇지만, 개인키 파일이 별도로 지정된 이름으로 가지고 있거나, 여러개의 개인키를 유지해야하는 경우 이와 같은 고정된 방법으로 개인키 파일을 유지할 수 없습니다.

결국, git@github.com: Permission denied (publickey) 와 같은 오류를 발생하면서, 접속할 수 없게됩니다.

이러한 경우 개인키를 별도의 방법으로 지정해야하는데, 일반적인 방법은 .ssh/config 파일에


Host github.com

 HostName github.com

 IdentityFile ~/.ssh/개인키파일

 User Github사용자 아이디


와 같이 등록하거나, GIT_SSH_COMMAND 변수를 활용 하면 됩니다.(특정 Git클라이언트 버전 이상에서 지원됨)




'DevOps' 카테고리의 다른 글

CURL의 사용법  (0) 2016.02.21
DevOps관련 멜번에서의 Hot한 이슈들...  (0) 2016.02.19
도커(Docker)개념 잡기  (0) 2016.02.18
리눅스의 종류와 특징  (0) 2016.01.05
Atom 에디터 단축키 정리  (1) 2015.11.16
Posted by Steven J.S Min
,