Я использую короткую запись и у меня всё работает:
serg@desktop:~/tmp$ git clone gituser@server:cms.git
Initialized empty Git repository in /home/serg/tmp/cms/.git/
DEBUG:gitosis.serve.main:Got command "git-upload-pack 'cms.git'"
DEBUG:gitosis.access.haveAccess:Access check for 'serg@server' as 'writable' on 'cms.git'...
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'cms.git', new value 'cms'
DEBUG:gitosis.group.getMembership:found 'serg@server' in 'tester'
DEBUG:gitosis.group.getMembership:found 'serg@server' in 'cms'
DEBUG:gitosis.group.getMembership:found 'serg@server' in 'project2'
DEBUG:gitosis.group.getMembership:found 'serg@server' in 'project3'
DEBUG:gitosis.access.haveAccess:Access ok for 'serg@server' as 'writable' on 'cms'
DEBUG:gitosis.access.haveAccess:Using prefix 'repositories' for 'cms'
DEBUG:gitosis.serve.main:Serving git-upload-pack 'repositories/cms.git'
remote: Counting objects: 1313, done.
remote: Compressing objects: 100% (1046/1046), done.
remote: Total 1313 (delta 376), reused 745 (delta 116)
Receiving objects: 100% (1313/1313), 1.29 MiB | 469 KiB/s, done.
Resolving deltas: 100% (376/376), done.
Про пользователей и подключение к gitosis, написанное мной выше, я ошибся, но уже исправился. Правильный алгоритм выглядит так:
* В ОС создаётся пользователь (в листинге у меня это gituser), который является владельцем директории с хранилищами, то есть у вас это git (так как есть папка /home/
git/). Далее этого пользователя я буду называть ПОС.
*
ПОС имеет доступ к серверу, а не хранилищам! Поэтому создаётся виртуальный пользователь (ВП), который имеет ключ, но самостоятельно подключиться к серверу не может (у вас это user), но может подключаться к хранилищам. Переносим на компьютер-клиент секретную часть ключа ВП. В ~/.ssh/config пишем:
Host server
User gituser # Это ПОС
Port 9876
IdentityFile ~/.ssh/serg_dsa # Ключ от ВП
Используя ключ ВП, получаем на клиентский компьютер хранилище gitosis-admin.git. Редактируем конфигурационный файл:
[gitosis]
loglevel = DEBUG
[group gitosis-admin]
writable = gitosis-admin
members = serg@server
[group cms]
writable = cms
members = serg@server
[group project2]
writable = project2
members = serg@server
[group project3]
writable = project3
members = serg@server
[group tester]
writable = test
members = serg@server
Обратите внимание, что имя у пользователя не просто serg, а serg@server! Узнать как правильно пишется имя пользователя можно в файле /home/
ПОС/.ssh/authorized_keys на сервере.
* После этого отправляем gitosis-admin.git на сервер со всеми изменениями и ключами новых пользователей, если если они были добавлены.
Теперь всё должно работать как часы.
У вас я вижу явную путаницу в пользователях и, возможно, у вас неправильно настроена учётная запись ПОС в ~/.ssh/config на компьютере-клиенте.
Склонировал репозиторий git clone ssh://git@myhost.com:8110/home/git/repositories/gitosis-admin.git и запушил еще раз изменения.
В результате получаю следующий вывод
Вывод свидетельствует о том, что пользователь под которым вы пытаетесь отправить изменения не имеет доступа к хранилищам. А это ещё раз указывает на то что в ~/.ssh/config на компьютере-клиенте указан ключ о ПОС, а нужно указать ключ от ВП!
Если после всего вышеописанного не заработает, то файлы ~/.ssh/config с компьютера-клиента и /home/ПОС/.ssh/authorized_keys , /home/ПОС/.gitosis.conf с сервера приложите к сообщению.