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를 설치한다.
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/
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 계정에 접근할 수 없다.
참조
'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 |