局域网上的GIT存储库


14

我正在尝试在Ubuntu OS中通过LAN设置GIT存储库。 我能够设置一个GIT存储库,但是不确定如何向LAN中的其他用户公开该存储库。 因为它需要服务器,所以我安装了OpenSSH-Server。但是不知道如何配置它。 请指出我要阅读的正确资源。 谢谢。




git 

Answers:


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。使用您最喜欢的编辑器在gitosis中创建一个新块。它看起来应该像这样:

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

在上面的块中需要注意几件事。
首先,请确保您的名称与公用密钥中的名称匹配(即,打开id_rsa.pub文件并查看名称中的含义)。
其次,请确保正确拼写可写!

完成后,提交更改并将其推送到服务器。

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

注意:如果您对遇到问题eagain.net,可以使用Github。
卡扎尔克

3

最好的方法是运行ssh服务器并限制用户使用git-shell其登录shell。如果尚未安装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在登录服务器时执行操作,而不是向用户提供完整的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.