Я пытаюсь заставить Gitosis работать на моем сервере Ubuntu (от клиента Win7). Он установлен, и я могу подключиться к нему через SSH, однако, если я попытаюсь запустить новый проект, я получу следующую ошибку:
ОШИБКА: gitosis.serve.main: доступ для чтения репозитория запрещен
С тех пор я попытался очистить папку / home / git / и начать заново, но теперь я получаю ту же ошибку, даже когда пытаюсь захватить проект gitosis-admin.
Есть идеи, что могло вызвать это?
[править] Добавление флага отладки в файл конфигурации дает мне следующее:
C:\sandbox>git push origin master
DEBUG:gitosis.serve.main:Got command "git-receive-pack '/home/git/repositories/sandbox'"
DEBUG:gitosis.access.haveAccess:Access check for 'Dan@DAN-PC' as 'writable' on 'home/git/repositories/sandbox'...
DEBUG:gitosis.group.getMembership:found 'Dan@DAN-PC' in 'gitosis-admin'
DEBUG:gitosis.access.haveAccess:Access check for 'Dan@DAN-PC' as 'writeable' on 'home/git/repositories/sandbox'...
DEBUG:gitosis.group.getMembership:found 'Dan@DAN-PC' in 'gitosis-admin'
DEBUG:gitosis.access.haveAccess:Access check for 'Dan@DAN-PC' as 'readonly' on 'home/git/repositories/sandbox'...
DEBUG:gitosis.group.getMembership:found 'Dan@DAN-PC' in 'gitosis-admin'
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly
[edit2]
Чтобы добавить к этому дополнительную информацию - я только что попробовал Gitolite и получил аналогичную ошибку:
Cloning into gitolite-admin...
R access for home/git/repositories/gitolite-admin DENIED to dan
(Or there may be no repository at the given path. Did you spell it correctly?)
fatal: The remote end hung up unexpectedly
При этом используется тот же пользователь "git" и ключи. Я попытался изменить права доступа к каталогу, но это не помогло.
Есть идеи, что могло вызвать это?
Обычно это означает либо (а) ошибку конфигурации в вашем gitosis.conf
или (б) отсутствующий открытый ключ в вашем Gitosis keydir
. Для дальнейшей диагностики проблемы:
Проверьте репозиторий администратора. Поскольку вы можете войти на сервер, вы можете запустить:
git checkout /path/to/gitosis/repos/gitosis-admin.git
Это даст вам каталог с именем gitosis-admin
. Внутри этого каталога находится ваш gitosis.conf
файл.
Добавьте в начало файла следующее:
[gitosis]
loglevel = DEBUG
Зафиксируйте свои изменения и вернитесь в исходный репозиторий:
git commit -m 'enabled debug logging' -a
git push origin master
Теперь, когда вы перейдете к установке gitosis, вы получите подробный журнал отладки, который должен помочь диагностировать проблему. Если это не указывает на проблему, опубликуйте здесь результаты отладки, и мы поможем вам разобраться.
Очень рекомендую бросить гитоз и перейти на гитолит. Gitosis устарел и, похоже, больше не поддерживается, в то время как gitolite очень активно поддерживается и поддерживается. Gitolite делает все, что может gitosis, но делает это лучше, включая подробные ошибки вместо расплывчатых ошибок, которые вы получаете от gitosis.
Оказалось, это потому, что я использовал то же имя пользователя, что и мой основной вход в SSH-оболочку (дан). Поэтому я изменил своего администратора git, чтобы использовать ту же пару ключей SSH, и теперь, похоже, он работает нормально. Также теперь используется Gitolite, как рекомендовано Arrowmaster.