Git 설치하기
-- Git 설치
# yum install git
-- 설치 화면
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
mariadb | 2.9 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/2): extras/7/x86_64/primary_db | 98 kB 00:00:00
(2/2): mariadb/primary_db | 21 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: centos.mirror.cdnetworks.com
* extras: centos.mirror.cdnetworks.com
* updates: centos.mirror.cdnetworks.com
Package git-1.8.3.1-6.el7_2.1.x86_64 already installed and latest version
Nothing to do
-- git hub 사용시
Git 사용자추가
# git config --global user.name "test"
# git config --global user.email "test@abcdefg.net"
Git 환경 설정
# git config --global color.ui auto
//Git 명령어 실행시 출력될 화면을 좀더 컬러풀하게 설정한다.
# git config --global alias.st status
Git 설정 확인
# git config -l
user.name=test
user.email=test@daum.net
color.ui=auto
alias.st=status
-- git server설정
1. 서버 git 설치 및 계정 생성
# adduser git // git 계정 생성
# passwd git // git 암호 설정
# su git // 생성한 계정으로 전환
# cd // 홈 디렉토리(/home/사용자명(git))로 이동
# ssh-keygen -t rsa //rsa 암호화 방식으로 key 생성
Generating public/private rsa key pair.
Enter file in which to save the key (/home/git/.ssh/id_rsa): // 그냥 Enter
Enter passphrase (empty for no passphrase): // 그냥 Enter
Enter same passphrase again: // 그냥 Enter
# ls -al ~/.ssh // /home/git/.ssh에 id_rsa, id_rsa.pub이 생성되었는지 확인
# exit // git 계정 로그아웃
# exit // 서버 원격 계정 로그아웃
2. 내 PC git 설치 및 기본 설정
설치 url : https://git-for-windows.github.io/
설치가 완료되면 git bash 창을 띄우고
# git --version // git 버전확인
# git config --global user.name "사용자이름" // 사용자 이름 입력
# git config --global user.email "사용자이메일" // 사용자 이메일 입력
# git config --global color.ui "auto" // 색상 자동 설정
# git config --global --list // 설정 확인
3. 내 PC SSH Key 생성
# ssh-keygen -t rsa //rsa 암호화 방식으로 key 생성
Enter file in which to save the key (/c/Users/사용자이름/.ssh/id_rsa): // 그냥 Enter
Enter passphrase (empty for no passphrase): // 그냥 Enter
Enter same passphrase again: // 그냥 Enter
#ls -al ~/.ssh // 해당 명령어를 입력하거나 윈도우 폴더 경로로 들어가서 id_rsa, id_rsa.pub 파일이 생성되었는지 확인
4. Public Key를 서버에 전송
# cd .ssh // /home/사용자명/.ssh 디렉토리로 이동
# $ scp id_rsa.pub git@서버도메인: // 서버의 git 계정 home 디렉토리에 공개키를 복사(암호를 묻는다면 git 계정 암호 입력)
5. 전송받은 Public key 등록
# ssh git@서버도메인 // ssh로 서버 원격 접속 및 git 계정 암호 입력
# cd // 홈디렉토리로 이동
# ls -al // 전송한 id_rsa.pub 파일이 존재하는지 확인
# cat id_rsa.pub >> .ssh/authorized_keys //authorized_keys 파일을 생성하고 다음 내용을 추가
# rm -f id_rsa.pub // id_rsa.pub
# chmod 700 .ssh //.ssh 디렉토리 권한 설정 (매우 중요)
# chmod 600 .ssh/authorized_keys //authorized_keys 파일 권한 설정 (매우 중요)
# exit // 원격 접속 해제
6. 접속 테스트
# ssh git@서버도메인(암호를 물어보지않는다면 성공)
! 암호를 물어본다면 설정에 문제가 있는 것(-v, -vv, -vvv 옵션 등을 추가하여 디버깅합니다.)
# exit // 로그아웃
7. Git Repository 생성
# ssh root@서버도메인 // ssh로 서버 원격 접속(root 계정으로 접속)
# mkdir -p /git_repository/project.git // /git_repository/project.git 디렉토리 생성
# chown git:git /git_repository // 소유권 변경
# chown -R git /git_repository/project.git // 소유권 변경
# su git // git 계정으로 전환
# cd /git_repository/project.git // 해당 디렉토리로 이동
# git --bare init // 디렉토리 초기화
! Initialized empty Git repository in /git_repository/project.git/ 메세지 출력 확인
# cd 홈디렉토리(home/사용자명)로 이동
# ln -s /git_repository/project.git // /home/사용자명/poject.git 심볼릭 링크 생성(project.git -> /git_repository/project.git)
# exit // git 계정 로그아웃
# exit // root 계정 로그아웃
8. 내 PC에서 최초의 clone&commit
# cd c: // c드라이브로 이동
# mkdir project // project 폴더 생성 및 이동
# git clone git@서버도메인:project.git
Cloning into 'project'... 메세지 출력 확인
warning: You appear to have cloned an empty repository.
# cd project // C:\project로 이동
# echo “Hello!!” > readme.txt // readme.txt 생성
# git add readme.txt // add
# git commit -m ‘commit test’ // commit
# git push origin master // push
# git status // status 확인
# git log // log 확인
# git pull // 최신 내용으로 업데이트
9. git 동기화 (client)
작업 완료 후, 이동
# git pull
# git add -–all
# git commit -m ‘.’
# git push
10.보안을 위해서 쉘기능 제한 (optional) (client->server)
Git 계정으로 접속한 유저들이 서버를 휘젓고 다니는 것을
막기 위해 쉘기능을 제한한다.
# vi /etc/passwd
위에서 등록한 Git 계정을 찾아 /bin/bash 부분을 /usr/bin/git-shell로 변경한다.
git:x:1001:1001::/home/git:/bin/bash
git:x:1001:1001::/home/git:/usr/bin/git-shell
exit // root 계정에서 탈출 (원격 서버 접속 해제)
다시 Git 계정으로 접속해보면 아래와 같은 메시지를 출력하면서 접속이 제한된다.
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.