一般用户的机器上都不会只用到自己服务器上的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获取下来,第二种方式在输入用户密码后会出现以下错误:
fatal: ‘gitosis-admin’dose not appear to be a git repository
fatal: Could not read from remote repository.
一直搞不清楚,为什么在开启publikey的情况下会让输入git用户的用户密码?为什么git-scm上的这种获取方式在输入git的用户密码后会提示以上的错误。
后来在日志里发现了问题:
Authentication refused: bad ownership or modes for directory /home/git/.ssh
由于centos对权限的敏感,导致了这个问题。其实有时候centos真的坑很多,明明是按照别人的教程,但是却运行不起来,not working,其实就是centos的权限很敏感。
按照下面的命令,就会解决所有的问题。
chmod g-w /home/your_user
chmod 700 /home/your_user/.ssh
chmod 600 /home/your_user/.ssh/authorized_keys