LAN을 통한 GIT 저장소


14

Ubuntu OS 에서 LAN통해 GIT 저장소 를 설정하려고합니다 . GIT 리포지토리를 설정할 수 있지만 LAN의 다른 사용자에게 리포지토리를 노출하는 방법을 잘 모르겠습니다 . 서버가 필요하므로 OpenSSH-Server를 설치했습니다 . 그러나 그것을 구성하는 방법을 모른다 . 읽을 리소스를 수정 해주세요. 감사.




git 

답변:


17

우선, Ubuntu 서버에서 openssh 설정을 확인해야합니다. 이 HowTo를 참조하십시오 .

그런 다음 이 기사를 따르면됩니다.

$ sudo apt-get install python-setuptools
$ mkdir ~/src
$ cd ~/src
$ git clone git://eagain.net/gitosis.git
$ cd gitosis
$ sudo python setup.py install
$ sudo adduser \
  --system \
  --shell /bin/sh \
  --gecos 'git version control' \
  --group
  --disabled-password \
  --home /home/git \
  git

/etc/ssh/ssh_config파일 로 이동하여 로그인 할 수있는 허용 된 사용자 목록에 git을 추가하십시오. 파일을 서버의 어딘가에
복사 id_rsa.pub하고 (이 예제에서는 /tmp) 다음 명령을 실행하십시오.

 $ sudo -H -u git gitosis-init < /tmp/id_rsa.pub
     Initialized empty Git repository in ./
 $ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

로컬 머신에서 다음을 사용하여 테스트하십시오.

 git clone git@YOUR_SERVER:gitosis-admin.git

새 프로젝트에 대한 기토 시스를 구성하십시오. 좋아하는 편집기를 사용하여 gitosis 블록 아래에 새 블록을 만듭니다. 다음과 같아야합니다.

[group myrailsapp]
members = myNameAsInTheRsa.pub
writable = myNewApp

위의 블록에서주의해야 할 사항이 몇 가지 있습니다.
먼저, 이름이 공개 키에있는 이름과 일치하는지 확인하십시오 (즉, id_rsa.pub 파일을 열고 이름이 무엇인지
확인하십시오).

완료되면 변경 사항을 커밋하고 서버로 푸시하십시오.

$ git commit -a -m "created a new repository!"
$ git push

참고 :에 문제가있는 eagain.net경우 Github을 사용할 수 있습니다.
Kazark

3

가장 좋은 방법은 ssh 서버를 실행하고 사용자가 git-shell로그인 쉘 에 사용하도록 제한하는 것 입니다. ssh 서버가 아직 설치되지 않은 경우 다음 명령 중 하나를 실행하여 ssh 서버를 올바르게 설치할 수 있습니다.

sudo apt-get install openssh-server

또는

sudo apt-get install dropbear

그런 다음 추가 /usr/bin/git-shell하는 /etc/shells수행하여

sudo echo $(which git-shell) >> /etc/shells

그런 다음 사용자 쉘 git-shell대신을 사용하십시오 bash. 이렇게하면 사용자에게 git서버 전체를 제공하는 대신 서버에 로그인 할 때 작업 을 수행 할 수만있게됩니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.