准备工作
1 本地建立一个文件夹,命名为setup
2 准备公钥文件,复制到setup/keydir目录,注意公钥文件的命名是用户名.pub!!!
一个用户多个公钥的时候,公钥的存放方式:
1)keydir/alice.pub keydir/ubuntu/alice.pub keydir/windows/alice.pub可以表示用户alice的三个不同的public key
2)keydir/alice@ubuntu.pub 和keydir/alice@windows.pub
3)邮件地址形式。
推荐使用方式 1
3 编写仓库配置文件,保存到setup下,命名为gitolite.conf
-------------------------------参考模板-------------------------------------------
#定义用户组,等号后面是用户名,要与公钥文件名一致
@proj_a = git jacob # @proj_a是分组命名,分组用@表示,可以在后面引用分组
@proj_b = git taylor jean # 如果有多个用户,用空格隔开
@admins = git
@qa = elapse flora
@engineers = git jacob taylor jean
@staff = @admins @qa @engineers # 分组可以被引用
#定义仓库及权限
repo gitolite-admin # 这个是gitolite的管理仓库,sunny是指定可以对其进行操作的管理员
RW+ = git # 读、写、删除权限;
repo proj_a
RW+ = @admins
RW = @proj_a elapse
repo proj_b
RW+ = git
RW = @engineers flora # 读写权限
R refs/tags/ = @qa # 这里设定的,是QA这个组,对refs/tags/开头的路径的文件只有读权限
repo testing
RW+ = @stall
--------------------------------------------------------------------------
4 将以下安装脚本复制到setup目录,命名为setup.sh
--------------------------脚本开始------------------------------------------------
#切换到home目录
cd ~
#建立git用户,创建密钥对
adduser --system --shell /bin/bash --group -p git git
ssh-keygen -f git
#安装git
apt-get install git
#安装gitolite
git clone git://github.com/sitaramc/gitolite gitolite.git
mkdir ~/gitolite
gitolite.git/install -to ~/gitolite
~/gitolite/gitolite setup -pk ~/.ssh/git.pub
#配置gitolite
git clone git@localhost:gitolite-admin
#如果在签出的过程中询问密码,那么说明配置出了问题。一般情况是密钥配置错误。
#可以检查客户端的~/.ssh 下有没有 git 私钥(文件名是git,因为我们上传的公钥是git.pub)。
#如果需要使用不同的密钥连接多个ssh服务器,可以编辑~/.ssh/config 进行配置。
cp -r ~/setup/keydir ~/gitolite-admin/keydir/
mv ~/gitolite-admin/conf/gitolite.conf ~/gitolite-admin/conf/gitolite.conf.bak
cp ~/setup/gitolite.conf ~/gitolite-admin/conf/gitolite.conf
git add .
git commit -m "configure gitolite , add users and repos"
git push
------------------------脚本结束--------------------------------------------------
5 用scp复制setup文件夹到服务器
scp -r setup目录的绝对路径 git@服务器名或IP地址:setup //-r 表示递归的copy
6 用git用户登录到服务器,执行setup.sh
ssh git@服务器名或IP地址
7 验证是否成功
将自己的私钥放到~/.ssh/目录下(必须与setup下的公钥的名称相同,譬如公钥是bob.pub,那私钥就是bob)
git clone git@服务器名称:testing
8 删除setup文件夹
9 设置git没有密码,保证无法用git远程登录
1 本地建立一个文件夹,命名为setup
2 准备公钥文件,复制到setup/keydir目录,注意公钥文件的命名是用户名.pub!!!
一个用户多个公钥的时候,公钥的存放方式:
1)keydir/alice.pub keydir/ubuntu/alice.pub keydir/windows/alice.pub可以表示用户alice的三个不同的public key
2)keydir/alice@ubuntu.pub 和keydir/alice@windows.pub
3)邮件地址形式。
推荐使用方式 1
3 编写仓库配置文件,保存到setup下,命名为gitolite.conf
-------------------------------参考模板-------------------------------------------
#定义用户组,等号后面是用户名,要与公钥文件名一致
@proj_a = git jacob # @proj_a是分组命名,分组用@表示,可以在后面引用分组
@proj_b = git taylor jean # 如果有多个用户,用空格隔开
@admins = git
@qa = elapse flora
@engineers = git jacob taylor jean
@staff = @admins @qa @engineers # 分组可以被引用
#定义仓库及权限
repo gitolite-admin # 这个是gitolite的管理仓库,sunny是指定可以对其进行操作的管理员
RW+ = git # 读、写、删除权限;
repo proj_a
RW+ = @admins
RW = @proj_a elapse
repo proj_b
RW+ = git
RW = @engineers flora # 读写权限
R refs/tags/ = @qa # 这里设定的,是QA这个组,对refs/tags/开头的路径的文件只有读权限
repo testing
RW+ = @stall
--------------------------------------------------------------------------
4 将以下安装脚本复制到setup目录,命名为setup.sh
--------------------------脚本开始------------------------------------------------
#切换到home目录
cd ~
#建立git用户,创建密钥对
adduser --system --shell /bin/bash --group -p git git
ssh-keygen -f git
#安装git
apt-get install git
#安装gitolite
git clone git://github.com/sitaramc/gitolite gitolite.git
mkdir ~/gitolite
gitolite.git/install -to ~/gitolite
~/gitolite/gitolite setup -pk ~/.ssh/git.pub
#配置gitolite
git clone git@localhost:gitolite-admin
#如果在签出的过程中询问密码,那么说明配置出了问题。一般情况是密钥配置错误。
#可以检查客户端的~/.ssh 下有没有 git 私钥(文件名是git,因为我们上传的公钥是git.pub)。
#如果需要使用不同的密钥连接多个ssh服务器,可以编辑~/.ssh/config 进行配置。
cp -r ~/setup/keydir ~/gitolite-admin/keydir/
mv ~/gitolite-admin/conf/gitolite.conf ~/gitolite-admin/conf/gitolite.conf.bak
cp ~/setup/gitolite.conf ~/gitolite-admin/conf/gitolite.conf
git add .
git commit -m "configure gitolite , add users and repos"
git push
------------------------脚本结束--------------------------------------------------
5 用scp复制setup文件夹到服务器
scp -r setup目录的绝对路径 git@服务器名或IP地址:setup //-r 表示递归的copy
6 用git用户登录到服务器,执行setup.sh
ssh git@服务器名或IP地址
7 验证是否成功
将自己的私钥放到~/.ssh/目录下(必须与setup下的公钥的名称相同,譬如公钥是bob.pub,那私钥就是bob)
git clone git@服务器名称:testing
8 删除setup文件夹
9 设置git没有密码,保证无法用git远程登录