參考文章:
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 git
2、作爲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)
4、在win7機器上:
$ 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是你要加入的用戶名稱