通过 LAN 的 GIT 存储库

通过 LAN 的 GIT 存储库

我正在尝试设置一个通过 LAN 的 GIT 存储库Ubuntu操作系统。
我可以设置 GIT 存储库,但不确定如何 将存储库公开给局域网中的其他用户
因为它需要服务器,所以我安装了OpenSSH 服务器.但不知道如何配置它。

请指出我读取的正确资源。
谢谢。

答案1

首先,你需要检查 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 文件并查看名称中的内容)。
其次,确保您正确拼写了 writable!

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

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

答案2

最好的方法是运行 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作为您的用户 shell。这将限制用户只能git在登录服务器时执行操作,而不是为用户提供完整的 shell。

相关内容