UbuntuServer搭建Git服务器之git和gitolite(二)
最近课题小组需要搭建一台Git服务器,来进行代码共享与合作。从各种大牛的博客中了解到版本控制经历了CVS->SVN->GIT,果断选择用GIT。但GIT是开发在linux下的软件,搬到windows下用也是可以的。但为了学习学习,还是决定用linux做服务器操作系统,然后在windows下进行管理。但是如何搭建GIT呢?用到什么软件呢?经过几寻google,得知有gitosis和gitolite,
最近课题小组需要搭建一台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)
更多推荐
所有评论(0)