Gitosis错误:在先前可访问的存储库上接收"读取访问被拒绝"

Awe*_*nym 12 git access-denied gitosis

玩家们

我已经使用git和gitosis几个月了,我真的很喜欢这两个.不幸的是,我在使用gitosis访问我的一个项目时遇到了问题.

设置

我在运行Debian的托管服务器帐户上设置了我的git和gitosis安装.我还设置了四台带有单独rsa密钥的计算机(两台Ubuntu,两台Windows),并成功设置每台计算机以访问gitosis安装.一切都顺利进行了一段时间.但是,最近,我无法以任何方式访问我的"DesktopConfiguration"项目(推,拉,克隆).我最初在我的一台Linux机器上创建了DesktopConfiguration项目,将其推送到gitosis服务器,并将其克隆到我的一台Windows机器上.直到最近(过去两周左右)我才能访问它.以下是我的gitosis.conf文件和我收到的错误消息(无论我尝试使用Windows或Linux框推送,拉取还是克隆,错误消息都是相同的):

胡克

gitosis.conf的

[gitosis]  
loglevel = DEBUG  

[group gitosis-admin]  
writable = gitosis-admin  
members = windows-desktop linux-desktop linux-laptop work-laptop  

[group main-projects]  
writable = WallpaperChanger  
writable = RegexTester  
writable = MovieAggregator  
writable = FileRenamer  
writable = GlutenFreeShoppingAssistant  
writable = Libraries  
writable = DesktopConfiguration  
writable = RssFeedReader  
members = windows-desktop linux-desktop linux-laptop work-laptop  
Run Code Online (Sandbox Code Playgroud)

错误信息

C:\Documents and Settings\myname\Desktop\Desktop Config Test>git clone git@myserver:DesktopConfiguration.git  
Initialized empty Git repository in C:/Documents and Settings/myname/Desktop/Desktop Config Test/DesktopConfiguration/.git/  
DEBUG:gitosis.serve.main:Got command "git-upload-pack 'DesktopConfiguration.git'"  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'writable' on 'DesktopConfiguration.git'...  
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'writeable' on 'DesktopConfiguration.git'...  
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'readonly' on 'DesktopConfiguration.git'...  
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'  
ERROR:gitosis.serve.main:Repository read access denied  
fatal: The remote end hung up unexpectedly  
Run Code Online (Sandbox Code Playgroud)

故事

根据我在gitosis的经验以及我在网上找到的大多数问题和答案,错误消息看起来与尝试推送到gitosis时收到的错误消息完全没有先将项目添加到您的机器可以访问的组中.不幸的是,在我的情况下,这似乎并不正确.(除非我遗漏了什么!)

电线

我不确定这是否会提供更多信息,但这里是我的更新后挂钩的调试消息:

INFO:gitosis.run_hook:Running hook post-update  
DEBUG:gitosis.gitdaemon:Global default is 'deny'  
DEBUG:gitosis.gitdaemon:Walking '.', seeing ['RegexTester.git', 'gitosis-admin.git', 'Libraries.git', 'GlutenFreeShoppingAssistant.git', 'MovieAggregator.git', 'DesktopConfiguration.git', 'WallpaperChanger.git', 'RssFeedReader.git', 'FileRenamer.git']  
DEBUG:gitosis.gitdaemon:Deny 'RegexTester'  
DEBUG:gitosis.gitdaemon:Deny 'gitosis-admin'  
DEBUG:gitosis.gitdaemon:Deny 'Libraries'  
DEBUG:gitosis.gitdaemon:Deny 'GlutenFreeShoppingAssistant'  
DEBUG:gitosis.gitdaemon:Deny 'MovieAggregator'  
DEBUG:gitosis.gitdaemon:Deny 'DesktopConfiguration'  
DEBUG:gitosis.gitdaemon:Deny 'WallpaperChanger'  
DEBUG:gitosis.gitdaemon:Deny 'RssFeedReader'  
DEBUG:gitosis.gitdaemon:Deny 'FileRenamer'  
INFO:gitosis.run_hook:Done.  
Run Code Online (Sandbox Code Playgroud)

关闭

我仍然能够在我的所有机器上访问(推送,拉取,克隆)服务器上的所有其他项目(在gitosis-admin和main-projects组中).以下是我到目前为止尝试过的一些事情:

  • 我已多次检查所有文件夹,文件和配置设置的拼写.
  • 在确保更新后的挂钩具有正确的执行权限后,我已从gitosis.conf文件中删除并重新添加了DesktopConfiguration项目.
  • 我在DesktopConfiguration之后向gitosis添加了另一个项目,它运行正常.
  • 我已经在我的本地机器上的git中删除并重新添加了对项目的远程引用.
  • 我已经从服务器上的'repositories'文件夹中删除了DesktopConfiguration.git项目,并试图再次推送它.
  • 我甚至重新创建了所有的rsa密钥(虽然身份验证似乎与我所看到的问题无关).

所有这些尝试都未能允许我访问该项目.据我所知,在我失去对该项目的访问权限时,服务器或我的桌面计算机上没有任何变化.

我欢迎你张开双臂的任何见解!

sig*_*ine 4

对于“读取访问被拒绝”,我将检查服务器上的 gitosis 用户是否仍然具有对存储库的完全访问权限。你说你确定服务器上没有任何变化,但你已经排除了很多其他事情。仔细检查一下也没什么坏处。