git 서버 구축을 직접 가르쳐 드리겠습니다.

2301 단어
최근에 회사의 서버에 정적 블로그(Hexo)를 구축하고 git 서버를 먼저 구축하여 연결을 해야 하기 때문에 전체 과정이 순조로운 것 같아서 십여 분 만에 구축이 완성되었다. 그러나 마지막으로 이 카드를 검증한 지 두 시간이 되었다. 여기에 기록하여git 서버를 구축하려는 초보 젊은이들이 참고할 수 있도록 한다.

git 서버 구축


ssh를 통해 서버에 연결하여 작업을 시작합니다

첫걸음


서버에git 설치
$ sudo apt-get install git

두 번째 단계


git 사용자를 만들고git 서비스를 실행하는 데 사용합니다
$ sudo adduser git

세 번째 단계


인증서 만들기, 암호 없이 로그인: 로그인해야 하는 모든 사용자의 키 (id_rsa.pub 파일을 수집하고 모든 키를 /home/git/.ssh/authorized_keys 파일에 가져옵니다.
주의: 다음 명령을 통해 이 파일의 다른 사용자의 모든 권한을 제거해야 합니다. 그렇지 않으면 글의 끝 부분에 문제가 발생할 수 있습니다
$ chmod 600 authorized_keys

4단계


git 창고 초기화
$ git init --bare test.git

git는 누드 창고를 만듭니다. 누드 창고는 작업 공간이 없습니다. 서버에 있는git 창고는 순전히 공유를 위한 것이기 때문에 모든 사용자가 서버에 직접 로그인하여 작업 공간을 바꿀 수 없습니다. 그리고 서버의git 창고는 보통 .git로 끝납니다.그리고 owner를 git로 변경합니다.
$ sudo chown -R git:git test.git

다섯 번째 단계


셸 로그인 해제: 안전한 고려에 있습니다. 두 번째 단계에서 만든git 사용자는 셸에 로그인할 수 없습니다. 이것은 편집/etc/passwd 파일을 통해 완성할 수 있습니다.
git:x:1003:1003::/home/git:/bin/bash

... 로 바꾸다
git:x:1003:1003::/home/git:/usr/bin/git-shell

이렇게git 사용자는 ssh를 통해git를 사용할 수 있지만, 셸에 로그인할 수 없습니다. 왜냐하면git 사용자에게 지정한git-셸은 로그인할 때마다 자동으로 종료되기 때문입니다.

6단계


원격 창고 복제: 이제 git clone 명령을 통해 원격 창고 복제를 실행할 수 있습니다.
$ git clone git@server:/home/git/test.git

만약 서버의 ssh 포트가 기본 22가 아니라면, 예를 들어 6789는 이렇게 쓸 수 있다.
$ git clone ssh://git@server:6789/home/git/test.git

문제가 생겼다


원래 문서에 의하면 많은 원숭이들의 경험에 의하면 나의 건설 길은 이미 완성되었고 마지막 단계에 문제가 생겼다.서버와 상호작용 (clone,pull,push) 을 할 때마다git의 비밀번호를 입력하라고 합니다. 즉, 제가 설정한 ssh가 적용되지 않았습니다.그리고 여기저기 원인을 찾아서rsa를 다시 생성하고authorized_키 권한, 서버git 계정 다시 만들기, 다시...
Stack Overflow와segmentfault를 샅샅이 뒤졌는데 두 시간이 지났는데도 문제가 진전되지 않았습니다. 이렇게 간단한 것이 도대체 어디서 나온 것입니까?
의기소침하고 포기할 준비를 할 때 어디서 영감이 왔는지 authorized_keys 파일의 다른 사용자의 권한을 삭제하고 사용할 수 있습니다. 나중에 사용할 수 있습니다. 사용할 수 있습니다. 사용할 수 있습니다.
$ chmod 600 authorized_keys

최근에도git 시리즈를 지속적으로 업데이트할 것입니다. 지지해 주셔서 감사합니다.이전 글:git 상용 명령 및 사용 소감

좋은 웹페이지 즐겨찾기