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_rsa, id_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 |