我正尝试在Ubuntu操作系统中通过局域网设置GIT存储库 。
我能够设置一个GIT仓库,但不知道如何 将仓库暴露给LAN中的其他用户 。
由于它需要服务器,我安装了OpenSSH-Server 。 但不知道如何configuration它。
请指点我正确的资源阅读。
谢谢。
首先,您需要检查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添加到允许login的用户列表中。
将你的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
从你的本地机器上testing出来:
git clone git@YOUR_SERVER:gitosis-admin.git
为新项目configurationgitosis。 用你最喜欢的编辑器在gitosis下创build一个新块。 它应该是这样的:
[group myrailsapp] members = myNameAsInTheRsa.pub writable = myNewApp
有几件事要注意在上面的块。
首先,确保你的名字与你的公钥相匹配(即打开你的id_rsa.pub文件,看看名字是什么。
其次,确保你拼写正确!
完成后,提交并将更改推送到服务器。
$ git commit -a -m "created a new repository!" $ git push
你最好的办法是运行一个ssh服务器,并限制你的用户使用git-shell
作为他们的loginshell。 如果尚未安装以下命令之一,则可以正确安装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。 这将限制用户只能login到服务器时执行git
操作,而不是提供给用户一个完整的她..