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 상용 명령 및 사용 소감
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.