软件环境:在有网络条件下(主要是为了安装软件),ubuntukylin
14.04
1 安装openssh-serveropenssh-client,如果用的是vps之类的一般都默认安装好了,不过,不管有没有安装好,都执行下面的命令仍然是没有问题
sudo apt-get -y install openssh-server openssh-client
2 安装git,这个是核心软件,不可以缺少
sudo apt-get -y install git
3添加gitolite用户和同名用户组,加上–system参数,用户就不会再登录界面显示。
sudo adduser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
4生成ssh key,一路回车下来
ssh-keygen -t rsa(关于要存储路径的,我选择的是默认的,也就是说直接点击enter实现)
进入/home/toto/mydisk/gitolite目录,输入命令:ls
–a 可以看到如下信息:
其中,admin是私钥,不能删除,要自己保存好,admin.pub就是验证所需的公钥
5 将你当前用户的sshpub key复制到/tmp下备用(这种情况是本地安装的方式)
cp admin.pub /tmp/ubuntugege.pub
pwd
如果你是ssh远程登陆到服务器上安装,就要把你本地的key复制到远程的机器上
scp ~/.ssh/admin.pub gitolite.server:/tmp/ ubuntugege.pub
6 安装gitolite,在ubuntu中已经集成了,不用自己去下载。
sudo apt-get –y install gitolite
注意,上面提示要安装git-daemon-run和gitweb
安装命令是:
sudo apt-get –y install git-daemon-run
sudo apt-get –y install gitweb
7切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。
sudo su – gitolite
接着输入:
gl-setup /tmp/ ubuntugege.pub
注意:在安装过程中会出现如下情况,直接退出即可:
版本仓库位于:/home/gitolite/repositories/gitolite-admin.git/
进入/home下,ls,发现如下:
输入exit退出上面的命令行
8 把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh
pub key错了,如图就是成功了。
git clone ssh://gitolite@localhost/gitolite-admin.git
输入自己设置的密码:123456
注意:所属用户
执行git clone之后,发现已经有了一个克隆的仓库了。
9 管理gitolite
a管理员克隆gitolite-admin管理库
当gitolite安装完成后,在服务器端自动创建了一个用于gitolite自身管理的git库:gitolite-admin.git,克隆gitolite-admin.git库。命令如下:
验证的命令如下:
toto@toto-virtual-machine:~/gitolite-admin$ pwd
/home/toto/gitolite-admin
toto@toto-virtual-machine:~/gitolite-admin$ ls
conf keydir
toto@toto-virtual-machine:~/gitolite-admin$ ls -f
conf/ keydir/
toto@toto-virtual-machine:~/gitolite-admin$ ls conf/
gitolite.conf
toto@toto-virtual-machine:~/gitolite-admin$ ls keydir/
ubuntugege.pub
toto@toto-virtual-machine:~/gitolite-admin$
从上面可以看出gitolite-admin目录下有两个目录conf/和keydir
keydir/ ubuntugege.pub文件
目录keydir下初始时只有一个用户公钥.即ubuntugege用户的公钥。
conf/ gitolite.conf文件
该文件尾授权文件。初始内容为:
toto@toto-virtual-machine:~/gitolite-admin/conf$ cat gitolite.conf
repo gitolite-admin
rw+
= ubuntugege
repo testing
= @all
缺省授权文件中设置了两个版本库的授权:
gitolite-admin
即本版本库(gitolite管理版本库)只有ubuntugege用户有读写和强制更新的权限
testing
缺省设置的测试版本库,设置为任何人都可以读写以及强制更新。
10 增加新用户
增加新用户,就是允许新用户能够通过公钥访问git.只要新用户的公钥添加到gitolite-admin版本库的keydir目录下,即完成新用户的添加。
a 管理员从用户获取公钥,并将公钥按照username.pub格式进行重命名。
用户可以通过邮件或其他方式将公钥传递给管理员,切记不要将私钥误传给管理员。如果发生私钥泄露,马上重新生成新的公钥/私钥对,并将新的公钥传递给管理员,并申请将旧的公钥作废。
b
管理员进入gitolite-admin本地克隆版本库中,复制新用户公钥到keydir目录。
$ cp dev1.pub keydir/ (注意生成公钥的方法是通过ssh-keygen
–t rsa的方式生成)
查看git仓库的状态
执行git add命令,将公钥添加入版本库。
执行git commit,完成提交
执行git push,同步到服务器,才真正完成新用户的添加。