我正在尝试设置一个通过 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。