본문 바로가기

IT/Linux

[Linux] CentOS 7 Git Server 구축하기

CentOS 7에 Git을 설치해서 remote repository로 사용하는 예제를 포스팅하겠습니다.

(CentOS 7이 설치되어있지 않다면 다음 링크를 참고해주세요.)

2019/12/24 - [IT/Linux] - [Linux] VMware에 CentOS 7 설치 방법


1. Git 서버

Git 설치

# yum install git

# git --version

git을 설치하고 버전을 확인한다.

Git Directory 및 저장소 생성

mkdir -p /opt/git/project.git

git init --bare /opt/git/project.git/

git directory를 생성한다. (-p 는 상위 디렉토리도 함께 생성하는 옵션)

그리고 해당 디렉토리를 git 환경으로 초기화한다.

Git 계정 생성

# useradd git
# echo 'git:비밀번호입력' | chpasswd
# chown -R git:git /opt/git/

git 계정을 생성하고 비밀번호를 변경한다. 그리고  "/opt/git/" 디렉토리의 소유자를 git으로 변경한다.

(chown에서 -R 옵션은 하위 디렉토리까지 소유자를 변경한다는 의미이다.) 

.ssh 디렉토리 생성 

git 계정 home 디렉토리에 .ssh 디렉토리를 생성한다. 

# cd /home/git/
# mkdir .ssh

2. Windows 클라이언트

git-bash 설치

아래 경로에서 git-bash를 설치한다.

https://git-scm.com/

 

Git

 

git-scm.com

SSH KEY 생성

원격 저장소와 통신하려면, 서버에 공유키(public key)를 등록해야한다. 등록 하기 이전에 먼저 key를 생성해 보자

git-bash를 실행하고 ssh key 저장 디렉토리로 이동한다.

그리고 ssh-keygen명령어를 입력해서 key를 생성한다. (key가 이미 존재한다면 하지않아도 된다.)

무언가를 입력하라는 입력 창이 노출되는데 무시하고 Enter를 누르면 된다.

ssh-key가 정상적으로 생성되었다. ls 명령어를 입력해 잘 생성되었는지 확인한다.

그리고 pwd 명령어로 .ssh 경로를 메모장에 적어둔다. 


SFTP를 이용해 public key를 서버로 이동

filezila 툴을 이용해서 public key(id_rsa.pub)를 서버로 이동시킨다.

filezila가 없다면 아래 경로에서 다운받자.

https://filezilla-project.org/

 

FileZilla - The free FTP solution

Overview Welcome to the homepage of FileZilla®, the free FTP solution. The FileZilla Client not only supports FTP, but also FTP over TLS (FTPS) and SFTP. It is open source software distributed free of charge under the terms of the GNU General Public Licens

filezilla-project.org

 

filezila를 실행시켜 호스트 정보와 사용자 정보를 입력한 후 연결한다.

그리고 미리 생성해두었던 public key를 서버의 "/home/git/.ssh" 디렉토리로 이동시킨다.


서버에 key 등록하기

다시 서버로 돌아와서 /home/git/.ssh 디렉토리 경로로 이동 후 다음 명령어를 입력한다.

cat id_rsa.pub >> authorized_keys

위 명령어를 입력하면 클라이언트의 public key가 authorized_keys 파일에 append 된다.


/opt/git/project.git clone 하기 

프로젝트를 받기위해 적당한 위치에 디렉토리를 미리 생성시켜 둔다.

그리고 git-bash에서 해당 디렉토리로 이동해 다음 명령어를 입력한다.

git clone ssh://git@IP주소:/opt/git/project.git

clone 후 해당 디렉토리로 이동해 .git 폴더를 열어보면 git에 대한 정보가 담긴 파일들이 저장된 것을 볼 수 있다.


원격 저장소에 파일 올리기 

project 디렉토리에 test.txt 파일을 생성한다.

# git add .
# git commit --message "메시지"
# git push origin master


git 사용자가 리눅스 쉘 접근 막기

git을 이용하는데 문제는 없지만, 보안 상 막는게 좋다.

# witch git-shell
# chsh git -s /usr/bin/git-shell
# cat /etc/passwd | grep git

이것을 적용하면 git 계정에 접근할 수 없다.

 

참조

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_Git_%EC%84%9C%EB%B2%84_%EA%B5%AC%EC%B6%95_(SSH_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C)

'IT > Linux' 카테고리의 다른 글

[Linux] CentOS 7에 OpenJDK 1.8 설치  (0) 2020.02.19
[Tomcat] CentOS 7에 Tomcat8 설치 및 설정  (0) 2020.02.19
[Linux] 계정과 그룹관리  (0) 2020.02.12
[Linux] CentOS 7 Mysql 설치  (0) 2019.12.27
[Linux] VMware에 CentOS 7 설치 방법  (0) 2019.12.24