웹사이트 검색

VPS에서 개인 Git 서버를 설정하는 방법


소개

이 튜토리얼에서는 인증을 위해 SSH 키를 사용하여 완전한 기능을 갖춘 Git 서버를 설정하는 방법을 보여줍니다. 웹 인터페이스가 없으며 Git 설치 및 액세스 설정에 대해서만 설명합니다. VPS에 사용할 도메인 대신 "git.droplet.com" 호스트를 사용하십시오.

작업하는 동안 코드를 비공개로 유지하려는 경우 훌륭한 옵션이 될 수 있습니다. 오픈 소스가 현상 유지되는 경향이 있지만 코드를 자유롭게 사용할 수 있도록 하고 싶지 않은 경우가 있습니다. 모바일 앱, 특히 유료 앱을 개발하는 경우를 예로 들 수 있습니다. 이 코드는 복제에 사용할 URL 주소를 아는 경우 누구나 읽을 수 있지만 알고 있는 경우에만 가능합니다.

많은 사람들에게 한 가지 주요 관심사가 있으며 그것은 저장소에 대한 웹 인터페이스입니다. GitHub는 이를 놀랍도록 잘 수행합니다. Goblet과 같이 설치할 수 있는 응용 프로그램이 있습니다. 이 튜토리얼에서는 다루지 않지만 그래픽 인터페이스에 크게 의존하는 경우 이를 살펴보고 Git 서버 설치를 완료하자마자 그 중 하나를 설치하는 것에 대해 생각할 수 있습니다.

SSH 키 쌍 생성

먼저 SSH 키 쌍을 생성해야 합니다. Mac 또는 Linux를 사용하는 경우 터미널에서 다음 명령을 실행할 수 있지만 이메일 주소를 자신의 것으로 바꾸십시오.

ssh-keygen -C "youremail@mailprovider.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/flynn/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again: 
Your identification has been saved in foo_rsa.
Your public key has been saved in foo_rsa.pub.
The key fingerprint is:
ab:cd:ef:01:23:45:67:89:0a:bc:de:f0:12:34:56:78 flynn@en.com
The key's randomart image is:
+--[ RSA 2048]----+
|    o+-+  ..     |
|  E o            |
|   . ++.o..      |
|    o o H .      |
|   . .   =       |
|    . =o.o=      |
| o .             |
|  .              |
|     = o  .      |
+-----------------+

키 파일에 비밀번호를 입력하는 것이 좋습니다. 보안 계층이 하나 더 있고 영향이 매우 적습니다. Windows 기반 운영 체제를 사용하는 경우 PuTTY Gen과 같은 키 쌍을 생성하는 데 사용할 수 있는 도구가 있지만 일부 국가에서 사용을 금지했기 때문에 사용하기 전에 현지 법률을 확인해야 한다는 면책 조항이 함께 제공됩니다. 그렇지 않은 경우 VPS에 로그인하여 키 쌍을 생성하고 id_rsa 및 id_rsa.pub를 모두 다운로드하여 사용할 수 있습니다.

다음으로 VPS에는 Git 전용 사용자가 필요합니다. 대부분의 사람들은 단순히 "Git"이라는 사용자를 만들 것입니다. 이것이 이 튜토리얼에서 하는 일이지만 이 사용자의 이름은 원하는 대로 자유롭게 지정할 수 있습니다.

Git 사용자 설정 및 VPS에 Git 설치

VPS에 로그인하고 루트*를 얻으십시오:

su -

*일부 사람들은 이러한 방식으로 루트를 사용하는 것을 불편하게 여깁니다. VPS가 sudo를 사용하도록 설정되어 있으면 그렇게 하십시오.

리포지토리를 처리할 Unix 사용자(반드시 Git 사용자 이름이 아님)를 추가합니다.

useradd git

그런 다음 Git 사용자에게 비밀번호를 제공합니다.

passwd git

이제 다음과 같이 쉽습니다.

  • CentOS/Fedora: yum install git
  • 우분투/데비안: apt-get install git

액세스 목록에 SSH 키 추가

이 시점에서 Git 사용자로 로그인해야 합니다. 해당 사용자로 아직 로그인하지 않은 경우 다음 명령을 사용하여 전환하십시오.

su git

이제 id_rsa.pub 파일을 Git 사용자 홈 디렉터리에 업로드해야 합니다. 그런 다음 SSH 데몬이 수락할 SSH 키를 알려야 합니다. 이것은 인증된 키 파일을 사용하여 수행되며 도트 폴더 "ssh"에 상주합니다. 이를 생성하려면 다음을 입력하십시오.

mkdir ~/.ssh && touch ~/.ssh/authorized_keys

참고: 명령에서 이중 &를 사용하면 명령이 연결되므로 첫 번째 명령을 실행한 다음 두 번째 명령을 실행하도록 시스템에 지시합니다. 경로 시작 부분에 물결표를 사용하면 시스템이 홈 디렉토리를 사용하도록 지시하므로 ~는 VPS에 /home/git/이 됩니다.

우리는 cat 명령을 사용할 것입니다. 이 명령은 파일의 내용을 가져와서 명령줄로 반환합니다. 그런 다음 >> 수정자를 사용하여 콘솔에 인쇄하는 대신 해당 출력으로 작업을 수행합니다. 하나의 >가 지정하는 두 번째 파일의 모든 내용을 덮어쓰므로 주의하십시오. double >이 추가되므로 수행할 작업을 알고 있는지 확인하고 대부분의 경우 ">>"를 사용하는 것이 더 쉬울 것이므로 추가한 항목을 복원하는 대신 항상 삭제할 수 있습니다. 으깬다.

이 파일의 각 행은 이 계정에 액세스하려는 키의 항목입니다. 방금 업로드한 키를 추가하려면 다음을 입력합니다.

cat .ssh/id_rsa.pub | ssh user@123.45.56.78 "cat >> ~/.ssh/authorized_keys"

이제 인증된 키 파일에서 cat을 사용하면 키를 볼 수 있습니다.

cat ~/.ssh/authorized_keys

액세스 목록에 다른 사람을 추가하려면 id_rsa.pub 키를 제공하고 승인된 키 파일에 추가하기만 하면 됩니다.

로컬 리포지토리 설정

이것은 매우 간단한 프로세스입니다. Git 명령을 호출하고 원하는 디렉토리에 베어 저장소를 초기화하기만 하면 됩니다. "내 프로젝트"를 프로젝트 제목으로 사용하고 싶다고 가정해 보겠습니다. 폴더를 만들 때 Id는 모두 소문자를 사용하고 공백을 하이픈으로 바꾸고 이름에 ".git"를 추가합니다. 따라서 "내 프로젝트"는 "my-project.git"이 됩니다.

해당 폴더를 빈 Git 리포지토리로 생성하려면:

git init --bare my-project.git

그게 다야! 이제 VPS에 Git 리포지토리가 설정되었습니다. 로컬 컴퓨터에서 사용하는 방법으로 이동하겠습니다.

로컬 컴퓨터에서 Git 서버 사용

Linux 또는 Mac OS에서는 원격 원본을 새로 만든 서버로 변경해야 합니다. 서버에 푸시하려는 로컬 리포지토리가 이미 있는 경우 다음 명령을 사용하여 원격을 변경합니다.

git remote set-url origin git@git.droplet.com:my-project.git

설정 중인 새 리포지토리인 경우 다음을 사용합니다.

git init && git remote add origin git@git.droplet.com:my-project.git

이제 자신만 코드에 액세스할 수 있다는 사실을 알고 추가, 푸시, 풀 및 복제까지 할 수 있습니다.

그러나 신뢰할 수 있는 소수의 사람들이 이 서버에 액세스할 수 있도록 하고 사용자 이름별로 정렬하여 작업을 단순하게 유지하려면 어떻게 해야 합니까? 간단하고 효과적인 방법은 각 사람의 이름을 딴 폴더를 만드는 것이므로 Git 사용자 목록의 홈 폴더에 다음을 입력합니다.

mkdir user1 user2

이제 원격 저장소를 지정하면 다음과 같이 표시됩니다.

git remote add origin git@git.droplet.com:user1/user-project.git