처음에는 git 서버 및 사용자 관리 이 말조차 이해가 안되었다.

 

일단 컴퓨터 한 대는 GIT 전용 서버로 CentOS 6.5를 설치 했고, 고정 아이피로 만들어 두었다.

그리고 다른 사용자( 다른 컴퓨터 )들이 같이 프로젝트를 공유하는데 서버에 있는 GIT 저장소를 사용할 것이다.

 

 

서버에 git 설치하기.

 

 

git 서버를 사용할 각 팀들을 위한 계정을 추가.

 

 

권한 설정

 

1_team으로 로그인하고

 

1_team 계정 만들 때 홈 디렉터리 밑에 만들었음.

 

그리고 저장소를 만들 차례

관례에 따라 .git으로 만든다.

 

그리고 어떤 서버를 설치하더라도 일단 저장소를 Bare 저장소로 만든다.

Bare저장소란 워킹 디렉토리가 없는 저장소이다. --bare 옵션을 주고 init 해주면 된다.

 

그러면 1_TEAM_PROJECT.git 안에 무언가가 생긴 모습을 확인할 수 있음.

 

 

 

 

클라이언트에서 ( 사용자 )

 

내가 테스트한 클라이언트는 우분투12.04 ( 상관 없다. )

약간 사용자 계정 만드는 방법만 다를 뿐...

 

 

test 위해 ch_user라는 계정을 만들고 로그인 했다.

 

그리고 git도 ssh로 접근 한다?

서버에 계정을 만들어서 ( 위에서 만든 쓰기1_team )  권한이 필요한 필요한 사용자의 SSH 공개키를 모두 모아서 git 계정(1_team)의 ~/.ssh/authorized_keys 파일에

모든 키를 입력한다. 그러면 모두 git 계정으로 그 서버에 접속할 수 있다. 이 git 계정은 서버에 접속할 수단일 뿐, 사용자들이 데이터를 커밋 하는데는 아무런 영향을 주지 않음.

 

SSH 공개키 만들기

기본적으로 사용자의 ~/.ssh에 존재 함.

없는 것을 확인.

 

 

.ssh 디렉터리도 없으면 mkdir .ssh로 만들어주고

ssh_keygen이라는 프로그램으로 키를 만들어야 한다.

 

아래처럼 ssh-keyhen -t rsa라고 입력하면 3번의 질문을 한다. 

다 그냥 Enter만 눌러주면 default로 된다. 비밀번호는 설정 안하고..

1. 파일명을 달리할 것인가

2. 키 사용시 비밀번호 사용할 것인가.

3. 비밀번호 한번 더

 

 

그리고 확인을 해보면 두 개의 파일이 만들어 졌는데, id_rsa는 개인키이고,

 

그러면 저 공개키를 서버에 보내주어야 한다. 아래를 보면

 

서버에서도 마찬가지고 .ssh 디렉터리를 만들어주고 권한 설정.

 

그리고 다시 클라이언트에서 scp를 이용해서 공개키를 서버에 보내준다. ( 이메일로 보내서 서버에서 받아서 해도 상관 없음)

 

 

 

다시 서버에서 파일 전송 확인

전송된 파일을 cat을 통해 authorized_keys에 써준다

 

 

이제 다시 클라이언트에서 clone을 통해 서버에서 1_TEAM_PROJECT.git을 잘 받아오는지 확인

받아온 모습 확인할 수 있다.

 

 

 

 

그리고 서버에서 다른 사용자가  ssh를 통해 서버 bash shell에 접근하지 못하도록 막아준다. (  git만 사용하고 다른 것은 건드리지 못하도록 )

<변경 전>

<변경 후>

 

 

클라이언트에서 ssh를 통해 접근해도 실패하게 된다.

 

 

 

 

클라이언트에서 프로젝트 안에 새로운 파일을 만들고 commit까지 해보는 과정.

 

 

 사용자의 email과 name을 설정 해줘야야 함.

 

commit완료

 



출처: http://cheonee.tistory.com/entry/Git-서버-구축-및-사용자-관리 [오늘을 살자]