Rover12421's Blog

The End.

CentOs安装gitolite

        装备在服务器上搭建一个gitolite作为本地git的镜像,具体出问题了.弄了一晚上都没解决.

        安装真的很简单.直接给操作步骤吧:

        1.作为管理员的客户端先准备好公钥:

ssh-keygen

        2.服务端操作:
adduser -r -m -d /Rs/GitServer -s /bin/bash -U git
passwd git
su git
git clone git://github.com/sitaramc/gitolite.git
mkdir -p $HOME/bin
vi .bashrc
#Gitolite bin
export PATH=$PATH:$HOME/bin
exit

        3.在客户端上传作为gitolite管理员帐号的公钥,也就是第一步准备的公钥

scp ~/.ssh/id_rsa.pub git@rover12421.com:/Rs/GitServer/rover12421.pub

        4.在服务端安装

su git
gitolite/install -to $HOME/bin gitolite setup -pk rover12421.pub

        5.在客户端同步远程的管理库

git clone git@rover12421.com:gitolite-admin

        这样就安装完成了.我在Ubuntu和内网的一台CentOs6.2上安装也正常,但是服务器上安装就总是不能同步,只要clone就要输入密码.一旦输入密码就报错:

fatal: The remote end hung up unexpectedly

       昨晚就一直卡在这里,前前后后重建n多次帐号,换key,都没解决,还不小心在root帐号上安装了gitlote,正是这个误操作,让我今天把问题解决了.今天想再试试,用root帐号登录的时候居然登录不了,直接打印了gitolite库信息就退出了,这表示gitolite已经正常按照在root帐号上了,本地clone一次,居然也是正常的.这里还的庆幸昨天没把git帐号给清了,不然今天都上不了服务器了,汗啊...赶紧用git上服务器把root下的gitolite删了.然后对比了下,ssh下的授权key权限也是一样的,最后仔细想想对比不同机器上gitolite到底有啥不同,最后发现最大不同是出问题的gitolite用git帐号目录是在挂载的第二块硬盘里,和系统不在一个硬盘上.测试下,把 adduser -r -m -d /Rs/GitServer -s /bin/bash -U git 该成 adduser -r -m -d /GitServer -s /bin/bash -U git .再次安装,真的正常了.真是纠结啊....
       我自己猜测是linux对ssh自动登录做了限制,只有ssh服务端帐号在系统同硬盘下才可以自动登录.暂时还没找到相关文档.

Comments