Ubuntu OS 에서 LAN 을 통해 GIT 저장소 를 설정하려고합니다 .
GIT 리포지토리를 설정할 수 있지만 LAN의 다른 사용자에게 리포지토리를 노출하는 방법을 잘 모르겠습니다 .
서버가 필요하므로 OpenSSH-Server를 설치했습니다 . 그러나 그것을 구성하는 방법을 모른다 .
읽을 리소스를 수정 해주세요.
감사.
답변
우선, 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
답변
가장 좋은 방법은 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
서버 전체를 제공하는 대신 서버에 로그인 할 때 작업 을 수행 할 수만있게됩니다 .