Git에서 계정 別 권한을 주기 위해서 대부분의 경우에 사용하는 SSH,
하지만 push 등을 할 때마다 패스워드를 입력하기가 상당히 귀찮다.
편하게 할 수 있는 방법이 없을까? 당연히 있다!
1. .ssh 확인
- ~/.ssh/ 경로를 확인하자.
$ ls -al ~/.ssh/
- ssh 키 파일이 없다.
2. ssh-keygen
- ssh 키 파일을 생성하자.
$ ssh-keygen
- [ ssh-keygen ] 명령을 실행하고 그냥 다 엔터를 치면 된다.
$ ls -al ~/.ssh/
- 다시 한 번 [ ~/.ssh/ ] 디렉토리 안의 파일을 확인하면 위 스크린샷과 같이 파일 2개가 생겼다.
- 확장자를 보면 알겠지만 [ id_rsa.pub ] 파일이 바로 공개키다.
3. authorized_keys
- 등록된 사람이라면 그냥 바로 접근을 허용하기 위해서는 authorized_keys 파일을 만들어야 한다.
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 위의 샘플의 경우는 git repository의 owner가 "chani"이고 사용자 역시 "chani"인 경우다.
- "chani" 계정에 ssh로 접근하는 사용자가 등록된 사용자인지 확인을 하기 위해서는 "authorized_keys"을 참조한다.
$ git clone chani@localhost:/srv/repository/bare1repo.git
- [ authorized_keys ]가 등록되어 있으면, 위와 같이 패스워드를 묻지 않고 바로 진행이 된다.
- 그런데, 위와같이 [ authorized_keys ] 파일을 만들어주는 것은 대단히 원시적인 방법이다.
$ ssh-copy-id -i ~/.ssh/id_rsa.pub chani@localhost
- 위와 같이 하면 뒷쪽에 있는 타겟에 [ authorized_key ] 파일을 생성한다!
- 참고!
곧 알아보려고 하는 gitolite를 활용한 Git 계정관리에서도
기본적으로 활용하는 "SSH 공개키" 사용 방법에 대해서 알아보았다.
이 부분은 Git에서만 적용되는 것이 아니라, SSH 환경에서 기본적으로 적용하는 방식이다.
잘 알아두면 리눅스 환경에서 많은 도움이 될 것이다.
반응형
'SCM > Git-GitHub' 카테고리의 다른 글
Git 계정 관리 - Gitolite 설치하기 (23) | 2012.05.15 |
---|---|
GitWeb + Nginx (0) | 2012.05.09 |
Git Branch (브랜치) - Remote Ⅲ (생성, track) (0) | 2012.05.01 |
Git Branch (브랜치) - Remote Ⅱ (Pull) (0) | 2012.04.30 |
Git Branch (브랜치) - Remote Ⅰ (Fetch) (0) | 2012.04.30 |