welpher's blog

CentOS下安装Git服务端遇到的问题

一般用户的机器上都不会只用到自己服务器上的Git,还会有Github、Oschina等一些开源的Git,所以要配置.ssh/config这个文件,指向不同的密钥文件;然后自己搭建的服务器如果端口不是22,那还要在这个文件里配置Port。

根据网络大多数的教程,会用以下命令去服务上获取gitosis-admin:

git clone git@VPS的IP``/Domain``:``/home/git/repositories/gitosis-admin``.git

但是我在[git-scm](http://git-scm.com/book/en/Git-on-the-Server-Gitosis)上看到的却是这样:

git clone git@gitserver:gitosis-admin.git

这两种方式我都试过,按照默认安装下来的,第一种命令在输入服务器git用户的密码后会成功将gitosis-admin.git获取下来,第二种方式在输入用户密码后会出现以下错误:

20140711124037

fatal: ‘gitosis-admin’dose not appear to be a git repository

fatal: Could not read from remote repository.

一直搞不清楚,为什么在开启publikey的情况下会让输入git用户的用户密码?为什么git-scm上的这种获取方式在输入git的用户密码后会提示以上的错误。

后来在日志里发现了问题:

20140711124554

Authentication refused: bad ownership or modes for directory /home/git/.ssh

由于centos对权限的敏感,导致了这个问题。其实有时候centos真的坑很多,明明是按照别人的教程,但是却运行不起来,not working,其实就是centos的权限很敏感。

按照下面的命令,就会解决所有的问题。

1
2
3
chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 许可协议进行许可