我正在尝试在Ubuntu OS中通过LAN设置GIT存储库。
我能够设置一个GIT存储库,但是不确定如何向LAN中的其他用户公开该存储库。
因为它需要服务器,所以我安装了OpenSSH-Server。但是不知道如何配置它。
请指出我要阅读的正确资源。
谢谢。
我正在尝试在Ubuntu OS中通过LAN设置GIT存储库。
我能够设置一个GIT存储库,但是不确定如何向LAN中的其他用户公开该存储库。
因为它需要服务器,所以我安装了OpenSSH-Server。但是不知道如何配置它。
请指出我要阅读的正确资源。
谢谢。
Answers:
首先,您需要在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
最好的方法是运行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
在登录服务器时执行操作,而不是向用户提供完整的信息。
eagain.net
,可以使用Github。