1.首先须要阅读 LinuxMint13安装无密码访问git ,在该博文中讲到客户端的id_rsa.pub在执行git
ssh-copy-id -i ~/.ssh/id_rsa.pub git@localhostgithub
之后,id_rsa.pub的内容就被拷贝到了服务器端的/home/git/.ssh/authorized_keys文件中。shell
在本篇博文开始的时候,须要另外选一台PC机,做为Git管理和受权者的操做机,和服务器机器已经开发者机器不一样,须要在受权机生成一对单独公私钥对,执行如下命令:服务器
ssh-keygen -f ~/.ssh/gitolite_skwikissh
生成两个文件分别是:~/.ssh/gitolite_skwiki和~/.ssh/gitolite_skwiki.pubide
将gitolite_skwiki.pub拷贝到服务器的/tmp/目录,修改权限为777,命令为:.net
scp ~/.ssh/gitolite_skwiki.pub git@服务器公网IP:/tmp/gitolite_skwiki.pub开发
此处由于咱们事先作了git帐号的免密码登陆,因此不会遇到权限问题。get
2.在受权机建立SSH主机别名:源码
编辑~/.ssh/config文件,没有该文件的话能够自动建立并编辑,输入如下内容:
host GitoliteServer
user git
hostname 主机公网IP
port 22
identityfile ~/.ssh/gitolite_skwiki
3.在服务器端,使用如下命令下载gitolite的源码:
git clone git://github.com/ossxp-com/gitolite.git
4.在服务器端,建立相关目录:
sudo mkdir -p /usr/local/share/gitolite/conf
sudo mkdir -p /usr/local/share/gitolite/hooks
5.在服务器端,进入刚clone下来的gitolite/src目录,进行安装:
cd gitolite/src
sudo ./gl-system-install /usr/local/bin /usr/local/share/gitolite/conf /usr/local/share/gitolite/hooks
6.在服务器端,安装平台的gitolite包:
sudo aptitude install gitolite
最近试了一下这个命令不能用了,后来又试了
sudo apt-get install gitolite
结果仍是不行,提示:
Package 'gitolite' has no installation candidate
后来执行:
sudo apt-get update
仍是不行,继续使用命令:
sudo apt-get upgrade
仍是不行,看来apt-get 装不了gitolite,
后来我使用:
sudo apt-get install aptitude
sudo aptitude update
sudo aptitude upgrade
安装上述步骤安装了aptitude,继续执行sudo aptitude install gitolite
仍是不行。。。。
7.在服务器端,这一步特别要当心,首先保证前面的步骤1已经执行了,而后执行如下命令:
cd ~
gl-setup /tmp/gitolite_skwiki.pub
执行之后有一个特别要注意的地方,程序提示编辑.gitolite.rc文件,不少书籍上说保持默认,
实际上须要对.gitolite.rc作必定修改:
$GL_WILDREPOS=0须要修改成1
否则会出现/homg/git/repositories没法生成的问题,提示没有设置$GL_WILDREPOS
成功后会生成repositories目录,里面有2个子目录,一个是gitolite-admin.git,一个是testing.git
7.在客户端,克隆gitolite-admin,输入如下命令:
git clone GitoliteServer:gitolite-admin.git
8.在客户端,如今理论上的话使用命令:
ssh GitoliteServer会显示:
@R W gitolite-admin
之类的,这是正常的
在输入ssh git@localhost的时候应该进入shell才对,可是却出现了这样的提示:
agent admitted failure to sign using the key
解决办法是,在客户端执行如下命令:
ssh-add ~/.ssh/id_rsa