参考文章:
http://blog.chinaunix.net/uid-15174104-id-3843570.html
http://blog.csdn.net/zk673820543/article/details/52535601
目标:
server:192.168.111.198,ubuntu-16.04
admin:192.168.111.199,windows7
client:192.168.111.200,ubuntu-12.04
1、服务器装好ubuntu系统,我使用的是ubuntu-16.04-desktop-amd64.iso,
root@server: apt-get install git root@server: apt-get install gitolite root@server: sudo adduser git2、作为admin的win7电脑下生成管理员sshkey生成,参考文章:http://blog.csdn.net/lsyz0021/article/details/52064829
将生成的id_rsa.pub改名为admin.pub,并上传到server :/tmp/admin.pub。
3、在服务器新建的git用户目录下:
- ljaer@ubuntu:~$ sudo su git
- git@ubuntu:/home/ljaer$ cd $HOME
- git@ubuntu:~$ git clone http://github.com/sitaramc/gitolite
- Cloning into 'gitolite'...
- remote: Counting objects: 9300, done.
- remote: Total 9300 (delta 0), reused 0 (delta 0), pack-reused 9300
- Receiving objects: 100% (9300/9300), 2.92 MiB | 134.00 KiB/s, done.
- Resolving deltas: 100% (5752/5752), done.
- Checking connectivity... done.
- git@ubuntu:~$ mkdir -p ${HOME}/bin
- git@ubuntu:~$ ${HOME}/gitolite/install -to ${HOME}/bin
- git@ubuntu:~$ ${HOME}/bin/gitolite setup -pk /tmp/admin.pub
- Initialized empty Git repository in /home/git/repositories/gitolite-admin.
- Initialized empty Git repository in /home/git/repositories/testing.git/
- WARNING: /home/git/.ssh missing; creating a new one
- (this is normal on a brand new install)
- WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
- (this is normal on a brand new install)
$ git clone [email protected]:gitolite-admin.git
Cloning into 'gitolite-admin'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (6/6), done.
$ cd gitolite-admin/
$ ls
conf/ keydir/
有两个目录, conf/和keydir/,其中conf/下面有个名为gitolite.conf的配置文件。
conf/gitolite.conf 用于Git项目配置,访问权限设置。
keydir/ 用于存储用户的SSH public key(公钥)。
Git项目配置和访问权限设置请看Gitolite的README.txt文档。
至此,作为管理员主机win7就可以管理git服务器的权限和用户了,下面添加一个用户client
将client的sshkey rsa.pub拷贝到当前keydir目录下,
//将新用户test1的公钥复制到管理员端检出库gitolite-admin/keydir目录 root@adminGit: git add keydir/test1.pub //执行 git add 命令,将公钥添加入版本库 root@adminGit: git status root@adminGit: git commit -m “add user: xxx” //执行 git commit,完成提交 root@adminGit git push //执行 git push,同步到服务器,才真正完成新用户的添加切换到root用户,运行visudo命令
在打开的配置文件中,找到root ALL=(ALL) ALL,在下面添加一行
git ALL=(ALL) ALL 其中git是你要加入的用户名称