Infra/CentOS

[CentOS] Linux Git Server 구축하기

당닝 2021. 11. 9. 12:49
728x90
목차

1. Git 설치

2. 저장소 생성

3. 계정 생성

4. git 서버로 키 등록

5. 테스트

 

 

 

1. Git 설치
yum install git

root 계정으로 로그인한 후, yum install git을 입력하면 설치가 시작된다.

중간중간 Is this ok [y/d/N]: 에서, y를 입력하면 된다.

 

[root@centaosserver ~]# git --version
git version 1.8.3.1

설치 후, git --version을 입력해, 버전이 제대로 나온다면 설치가 정상적으로 완료된 것이다.

 

 

 

2. 저장소 생성
root@centosserver:~# mkdir -p /opt/git/project.git
root@centosserver:~# git init --bare /opt/git/project.git/
Initialized empty Git repository in /opt/git/project.git/

git 디렉토리를 생성하고, 해당 디렉토리를 git 환경으로 초기화하는 작업이다.

 

 

 

3. 계정 생성
root@centosserver:~# useradd git -m -s /bin/bash
root@centosserver:~# echo 'git:비밀번호' | chpasswd
root@centosserver:~# cat /etc/passwd | grep git
git:x:1000:1000::/home/git:/bin/bash
root@centosserver:~# chown -R git:git /opt/git/

git 계정을 생성하고, 비밀번호를 변경한다. 비밀번호 자리에 원하는 비밀번호를 입력하면 된다.

이후, /opt/git/ 디렉토리의 소유자를 git으로 변경한다.

 

 

 

4. git 서버로 키 등록

Git (git-scm.com)

 

Git

 

git-scm.com

만약 git bash가 설치되어 있지 않다면, 위 링크에서 git bash를 설치한다.

 

ekdms@DESKTOP-A82QE47 MINGW64 ~
$ cd ~/.ssh/

git bash를 실행하고, ssh 디렉토리로 이동한다.

 

ekdms@DESKTOP-A82QE47 MINGW64 ~/.ssh
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/ekdms/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/ekdms/.ssh/id_rsa.
Your public key has been saved in /c/Users/ekdms/.ssh/id_rsa.pub.
The key fingerprint is:
ed:6b:78:50:2d:69:0b:0d:19:f4:bf:97:ae:a3:bb:30 serveradmin@centosserver
The key's randomart image is:
+--[ RSA 2048]----+
|       .oo       |
|        o.       |
|         o.o     |
|        ..*..    |
|        S+.o.    |
|        ...  . . |
|        Eo. . o  |
|        .oo..o   |
|         o=+.o.  |
+-----------------+

ssh-keygen을 입력해 키를 생성한다. 중간중간마다 엔터 입력하면 된다.

 

ekdms@DESKTOP-A82QE47 MINGW64 ~/.ssh
$ ls
id_rsa   id_rsa.pub

.ssh 폴더로 이동 후, ls 명령어를 사용해 키가 제대로 생성되었는지 확인한다.

 

ekdms@DESKTOP-A82QE47 MINGW64 ~/.ssh
$ pwd
/c/Users/ekdms/.ssh

pwd 명령어를 이용해 .ssh의 경로를 알아 둔다.

 

 

Downloading WinSCP-5.19.4-Setup.exe :: WinSCP

 

Downloading WinSCP-5.19.4-Setup.exe :: WinSCP

Problems with the download? Direct download

winscp.net

서버에 키를 등록하기 위해, 위 링크에서 파일을 관리할 수 있는 WinSCP를 다운받는다.

 

 

다운받은 후, 호스트 이름에 가상머신의 IP 주소를 입력하고, root로 로그인하면 된다.

 

 

윈도우에서 만들어둔 key의 경로를 찾아 centos의 /home/git/.ssh/로 이동시킨다.

만약 파일이 보이지 않는다면 옵션 > 설정 > 패널 > 숨김 파일 표시를 체크한다.

 

root@centosserver .ssh:~# cat id_rsa.pub >> authorized_keys
root@centosserver .ssh:~# ls
authorized_keys  id_rsa  id_rsa.pub

이후, 가상머신으로 돌아와 다음과 같이 입력한다. 클라이언트의 public key를 authorized_keys 파일에 append한다.

 

 

 

5. 테스트

 

원하는 위치에 디렉토리를 미리 생성해두고, git bash에서 그 경로로 이동한다.

이후 git clone ssh://git@IP주소:/opt/git/project.git 을 입력해 프로젝트를 clone한다.

 

 

이후 해당 디렉토리에 접근하면, 파일들이 저장된 것을 확인할 수 있다.

 

 

 

+ 원격 저장소에 파일 올리기

 

project 디렉토리에 test.txt 파일을 생성하고, git bash에서 cd project를 입력해 위치를 이동한다.

이후, 다음과 같이 명령어를 입력하고 문제가 없다면 원격 저장소에 파일이 잘 올라간 것이다.

 

 

 

참고

리눅스 Git 서버 구축 (SSH 프로토콜) - 제타위키 (zetawiki.com)

 

리눅스 Git 서버 구축 (SSH 프로토콜) - 제타위키

다음 문자열 포함...

zetawiki.com

[Linux] CentOS 7 Git Server 구축하기 (tistory.com)

 

[Linux] CentOS 7 Git Server 구축하기

CentOS 7에 Git을 설치해서 remote repository로 사용하는 예제를 포스팅하겠습니다. (CentOS 7이 설치되어있지 않다면 다음 링크를 참고해주세요.) 2019/12/24 - [IT/Linux] - [Linux] VMware에 CentOS 7 설치..

bamdule.tistory.com

 

728x90