当前位置: 代码迷 >> 综合 >> Gitosis不能拉取代码,报错 ERROR:gitosis.serve.main:Repository read access denied fatal
  详细解决方案

Gitosis不能拉取代码,报错 ERROR:gitosis.serve.main:Repository read access denied fatal

热度:47   发布时间:2023-10-29 14:31:09.0

公司使用的Git管理工具是Gitosis,在使用时,出现了不能拉取问题

在gitosis.conf中做好了配置,且上传了公钥的情况下,一直不能拉取代码,报错如下

ERROR:gitosis.serve.main:Repository read access denied
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.

网上查来查去,就说是公钥没上传,或者名字写错了等等。实际上gitosis.conf中的名字,和公钥的名字没有问题且对应上了

后来摸索,找到了原因,以下是解决方案:

1、切换到git用户下,进入/usr/bin目录

2、执行如下命令

./gitosis-init < /var/opt/gitlab/repositories/gitosis-admin.git/gitosis-export/keydir/sm_new_hzb\@work.pub

至此,重试成功

原因如下:

1、切换到git用户下是因为拉取代码使用的是git用户。因此,要git用户对公钥及配置进行识别

2、执行gitosis-init命令,引入公钥信息,将配置及公钥对应起来

理解如下:

我们去窗口办事,以前是填完表把名字写进去(gitosis.conf),同时去了把身份证(公钥)交到前台就可以

这次的问题是,我明明填完了表(gitosis.conf),把身份证(公钥)交了,回去办事(拉代码)他一直说我这两个信息对应不上

解决方式是我交完身份证后,给窗口人员说了一下,这是我的身份证,你看一下(就是gitosis-init这个命令),系统读取公钥后,通过验证

至此,结束

附,文档可以看出很多问题,如果没有解决的话,建议大家看一下文档https://git-reference.readthedocs.io/zh_CN/latest/Git-on-the-Server/Gitosis/

  相关解决方案