UbuntuServer搭建Git服务器之git和gitolite(二)

  • Post author:
  • Post category:其他


最近课题小组需要搭建一台Git服务器,来进行代码共享与合作。从各种大牛的博客中了解到版本控制经历了CVS->SVN->GIT,果断选择用GIT。但GIT是开发在linux下的软件,搬到windows下用也是可以的。但为了学习学习,还是决定用linux做服务器操作系统,然后在windows下进行管理。但是如何搭建GIT呢?用到什么软件呢?经过几寻google,得知有gitosis和gitolite,而且现在的gitolite要更好,果断选择最好的。Git服务的提供是通过ssh,对于SSH的简单用法请参见

Git


服务器搭建之


SSH


基本用法(一)

,因此需要在服务器上安装SSH服务。下面就如何搭建基础Git服务器做详细描述:






服务器操作系统为ubuntu Linux server 12.04.1,


假定



服务器管理员为cglab,主机名为labserver。


1.系统配置及服务安装

(1)Git服务需要SSH,首先确定是否已安装SSH,Ubuntu 电脑上需要安装 openssh-server :

$sudo apt-get install openssh-server

(2)在服务器上创建专用账号gitadmin,并将此账号加到gitolite用户组,用来提供git身份验证:

$sudoaddgroup gitolite

$sudoadduser –ingroup gitolite gitadmin


2.SSH的公钥认证


该操作是在客户端,对于


SSH


的公钥认证请自行


google


。由于不能用同一个公钥用作


shell


访问和


gitolite


访问,我们需要建两个公私钥对


,


一个给


shell,


一个给


gitolite


用。


you cannot use the same key for both shell access and for gitoliteaccess

$ssh-keygen

该命令会在用户主目录下创建 .ssh 目录,并在其中创建两个文件:

(1)id_rsa, 私钥文件。是基于RSA 算法创建。该私钥文件要妥善保管,不要泄漏。

(2)id_rsa.pub, 公钥文件。和id_rsa 文件是一对儿,该文件作为公钥文件,可以公开。

创建了自己的公钥/私钥对后,就可以使用下面的命令,实现无口令登录远程服务器,即用公钥认证取代口令认证。

$ssh-keygen –f ~/.ssh/gitadmin  //该命令创建一个指定名字为gitadmin的公私钥文件对。

$scp ~/.ssh/gitadmin.pub cglab@labserver:/tmp///上传到服务器用作gitolite访问,见gitolite安装

$ scp ~/.ssh/id_rsa.pubcglab@labserver:/tmp/   //用作shell访问

$ssh cglab@labserver    //以cglab账号登陆服务器

cglab@labserver:~$sudo ssh-copy-id –i /tmp/id_rsa.pubgitadmin@labserver  //加入到SSH登陆身份gitamdin,用作shell访问

回到客户端,在~/.ssh/下创建

SSH


主机别名

,以方便登陆服务器访问gitolite用。

$vi ~/.ssh/config

其内容为:

host gitadmin

user gitadmin

hostname labserver

port 22

identityfile ~/.ssh/gitadmin

$ssh gitadmin  //将以服务器账号gitadmin身份登陆服务器,

注意不能登陆


shell





,


但可访问


gitolite

$ssh gitadmin@labserver //将用默认的id_rsa来认证,

可以登陆


shell


3. 安装git和gitolite

$sudo apt-get install git-coregitolite

//


对服务器操作

(1)如果是默认安装目录,请用此步,过程中不需要设置任何东东,其repositories目录默认在/home/usrname/下

$sudo su – gitadmin      //

切换账号到


gitadmin

$gl-setup /tmp/gitadmin.pub  //为gitadmin配置git,其中/tmp/gitadmin.pub为第二步上传的公钥

(2)如果是指定安装目录,需要创建目录并设置相关权限才可以,比如想把repositories目录安装在/srv下则:

$sudo mkdir /srv/repositories

$sudo chown gitadmin/srv/repositories  //改变目录的拥有者

$sudo su – gitadmin

$gl-setup /tmp/gitadmin.pub  //在此步,设置$REPO_BASE=”/srv/repositories”

回到客户端:

$git clone gitadmin:gitolite-admin  //使用gitadmin的专用公钥,克隆gitolite-admin 库

到此,git服务器的安装与配置已完成,下篇将介绍其管理。


辉辉


(FightingBull Studio)







版权声明:本文为fightingbull原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。