gogs ssh git clone git@g1.test.com:test/test.git does not appear to be a git repository 报错解决

gogs配置完nginx域名后,不管是http或者是ssh的方式来访问gogs 搭建的git服务,都是通过域名来访问,例如:git clone git@g1.test.com:test/test.git ./test

g1.test.com 就是我给gogs添加的域名
test/test.git 就是test用户下面的test库

但是刚一访问就报错了,也在用户设置里面添加了ssh 秘钥
但是就一直报错,
fatal: ‘test/test.git’ does not appear to be a git repository
fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。

仓库存在没啥问题,也都检查过了,弄了半天也没搞明白怎么回事,在配置上来回折腾,最后发现是.ssh的权限问题
gogs是运行再git用户的权限下面,
在git用户的根目录下面有.ssh 下面有个authorized_keys 这个就是保存公钥的文件
查了很多资料才发现是文件权限的问题,可能是我的.ssh文件夹是root用户创建的,权限也不是系统要求的,具体权限如下:

用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600

改好后,测试下一遍通过,其实问题有时候往往很简单,就是老往麻烦里想,才南辕北辙的,哈哈哈

参考链接

You May Also Like