gitosis安装补充说明

安装部署具体可以参考 http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way,或者参考《pro git》相关章节。这里只列出对问题的总结。

1.gitosis-init时直接使用git账户操作即可
[git@localhost ~]$ gitosis-init < /tmp/id_rsa.pub


2.
init成功后,默认生成:
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/

并且以/home/git/repositories作为git项目的根目录,也就是新建的或者已有的git项目需要放到这里。
那么访问路径就可以直接写项目的相对路径了,比如:
git clone git@localhost:gitosis-admin.git

注意到这里并不是repositories/gitosis-admin.git或者其他的。

3.gitosis只会在ssh的公钥授权方式起作用
如果使用ssh的密码授权clone项目,gitosis是不起作用的。也就是大家对所有项目都是读写的权限,并且项目路径是绝对路径,这时候clone的路径为:
git clone git@localhost:/home/git/repositories/gitosis-admin.git

这和未安装gitosis是一致的。未安装gitosis之前,不管是公钥授权还是密码授权,均使用绝对路径。

4.'gitosis-admin.git' does not appear to be a git repository错误
ssh一般会配置为公钥和密码授权两者同时开启,当公钥验证不通过时,还会继续使用密码验证,这时候会提示输入密码。所以经常会出现以下的错误:
[root@localhost ~]# git clone git@localhost:gitosis-admin.git
Cloning into gitosis-admin...
git@localhost's password:
fatal: 'gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

原因:
客户端和服务端的公钥授权没配置正确,解决即可。
另:
因为触发了密码授权,提示错误确实是因为路径找不到,参考第3点,这时候如果写绝对路径,也可以获取到项目,但是绕过了gitosis的权限控制。

猜你喜欢

转载自flysnowxf.iteye.com/blog/1567846
今日推荐