Git Server 구축하기(Centos 7기준)
준비하기
Git 설치 하기
sudo yum install git
sudo yum install git-core
git 서버를 사용할 각 팀을 위한 계정을 추가
sudo useradd -d /home/1_team 1_teamcmd
추가후 비밀번호 설정
sudo passwd 1_team
권한설정
chmod 755 /home/1_team
추가한 아이디 1_team 으로 로그인 하고
su -l 1_team
디레터리 위치확인
pwd
/home/1_team
그후 git 저장소를 생성한다.(저장소를 생성할 디렉터리를 생성한것 아직 생성안함)
이름은 관례에따라 .git로 생성한다.
mkdir 1_TEMA_PROJECT.git
cd 1_TEAME_PROJECT.git/
그후 1_TEAM_PROJECT.git 내부에 git --bare init 명령어로 git 저장소 생성
git --bare init
그러면 1_TEAM_PROJECT.git 내부에 HEAD , config, hooks, info , refs 등 디렉터리및 파일이 생성된것을 확인할수 있음
ls -al 명령어로 확인가능
클라이언트에서(사용자)
test를 위해 ch_user라는 계정을 만들고 로그인
sudo adduser ch_user
sudo passwd ch_user
사용자가 git과 통신하기 위한 프로토콜은 여러가지가 있다.
git/ssh/http/https/local 프로토콜등이 있다.
여기서는 ssh를 사용하겠다.
서버에 계정을 만들어서 권한이 필요한 사용자의 SSH 공개키를 모두 모아서 git 계정(1_team)의 ~/.ssh/authorized_keys 디렉터리에 모든키를 입력한다. 그러면 모두git 계정으로 그 서버에 접속할수 있다. git 계정은 서버에 접속할 수단일뿐, 사용자들이 데이터를 커밋한느데는 아무런 영향을 주지 않는다.
SSH공개키 만들기
기본적으로 사용자의 ~/.ssh에 존재한다.
없을땐는 만들어주자.
mkdir .ssh
그후 ssh-keygen 이라는 프로그램으로 공개키와 프라이베이트 키를 만들어야한다.
ssh-keygen -t rsa라고 입력하면 3번의 질문과정을 거친뒤 키를 생성해준다.
1.파일명을 바꿀것인가?
2.키 사용시 비밀번호를 무엇으로 설정할것인가
3.비밀번호 한번더
위 과정을 마치게되면 id_rsa 파일과 id_rsa.pub 파일이 생성된것을 확인할수 있을것이다.
id_rsa 파일은 프라이베이트 키 이고 id_rsa.pub 파일은 공개키 파일이다.
이제 생성한 공개키 파일을 git server에 전달해주면 된다.
Git Server 계정인 1_team으로 들어가서 여기도 마찬가지로 .ssh디렉터리를 생성해주자
mkdir .ssh
chmod 700 ~/.ssh (chmod ~ 권한관련 잘모르겠다.....)
그런다음에 ch_user 에서 생성한 id_rsa.pub(공개키)를 scp를 이용해서 1_team(Git Server계정)에 전달해준다.(이메일로 보내서 서버에서 받아서 넣어도 상관이없다 전달만해주면됨)
scp id_rsa.pub 1_team@192.168.~~~:/home/1_team/
다시 서버에서 받은파일을 확인한다.
ls -al
그러면 id_rsa.pub이 있는걸 볼수 있을것이다.
전송받은 파일을 cat명령어를 통해서 .ssh/autorized_keys로 전달한다.
cat id_rsa.pub >> .ssh/authorized_keys
source ~/.bashrc (잘모르겠다...)
이제 다시 클라이언트에서 clone을 통해 1_TEAM_PROJECT.git을 잘 받아오는지 확인하면 끝.

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

<변경 전>

<변경 후>

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

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


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

commit완료
