ubuntu server多用户共享版本库

问题:远程版本库使用gitolite,客户端需要克隆版本库,
需要把客户的公钥放入到gitolite上面去,可以算是一个萝卜一个坑,
其实就是通过密钥对来控制对远程版本库的访问。现在的问题是,
一个服务器上有个用户克隆下来了远程的版本库,如果远程版本库有更新,服务器需要同步更新,
这时就有问题出来了,每次更新都得这个用户才能更新,如果这个用户不在的话,岂不是更新不了了?

解决方法:

下面以git用户为例,git用户有访问远程版本库的权限,jiangli是待授权用户

1.首先需要把git用户的私钥给各个用户发一下

git用户密钥位置:/home/git/.ssh/

如果生成密钥的时候用的是默认值的话,私钥的名字是id_rsa,把这个用户给各个用户,得到私钥的用户jiangli,需要把改密钥放在自己用户目录下的.ssh目录下

/home/jiangli/.ssh/

sudo chown jiangli:jiang id_rsa

sudo chmod 400 id_rsa

ps:如果jiangli这个用户已经有了别的版本库的读写权限,该怎么办呢?

1.首先给.ssh/目录下的密钥改下名字,例如这样:

然后新建一个config文件

vi config

host gitolite
     user git
     hostname 域名或者ip
     port 10080
     identityfile ~/.ssh/id_rsa
host devwitmob
     user git
     hostname 域名或者ip
     port 22
    identityfile ~/.ssh/devwitmob

2.例如git用户把项目克隆到/srv/test目录下,项目名称SpySprite,我们需要改变这个目录的读写权限

sudo chmod 777 -R /srv/test/SpySprite

3.上面两步完成以后,有私钥的用户就可以执行git pull命令执行更新了