#ubuntu #git
Gitolite отказывается работать по ssh Сервер -UBUNTU Клиент -Win7 На сервере: пользователь gitroot установлен git на дефолтных настройках установлен gitolite на дефолтных настройках сгенерированы ключи ssh на дефолтных установках файл sshd_config поправлен: раскоментированы строчки RSAAuthentication yes PubkeyAuthentication yes создан пользователь git Копирован свой публичный ssh rsa ключ из домашней директории для настройки управления репозиторием sudo cp ~/.ssh/id_rsa.pub /home/git/admin.pub Заходим под пользователем git и заканчиваем настройку sudo su git cd gl-setup admin.pub На клиенте: сгенерированы ключи через GitBash скопирован публичный ключ на сервер через GitBash git clone ssh://git@server:/home/git/repositories/gitolite-admin.git Спрашивает пароль для пользователя git, хотя не должно по инструкции. Что это может быть? Ведь при создании пользователя git не нужно было вводить никаких паролей?? Если при создании пользователя git задать пароль то все отлично клонируется на локальную машину. Только вот push выдает такое: $ git push origin master git@server password: Counting objects: 4, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 358 bytes | 0 bytes/s, done. Total 4 (delta 1), reused 0 (delta 0) remote: ENV GL_RC not set remote: BEGIN failed--compilation aborted at hooks/update line 20. remote: error: hook declined to update refs/heads/master To ssh://git@server:/home/git/repositories/gitolite-admin.git ! [remote rejected] master -> master (hook declined) error: failed to push some refs to 'ssh://git@server:/home/git/repositories/gitolite-admin.git'
Ответы
Ответ 1
командой gl-setup /путь/к/файлу/с/публичным/ключом, выполненной от имени пользователя git, вы «настроили» этого пользователя на обслуживание инфраструктуры gitolite (которая этой же командой создана в домашнем каталоге этого пользователя). изначально инфраструктура содержит всего один репозиторий gitolite-admin, через который и осуществляется управление: создание и удаление репозиториев, назначение прав доступа к ним и т.п. публичный ключ, который вы передали параметром программе gl-setup, назначен при этом «административным». при помощи секретной части этого ключа теперь можно склонировать репозиторий gitolite-admin, и, внеся в него изменения (например, добавив в файл conf/gitolite.conf описание нового репозитория), «запушить» эти изменения обратно (что приведёт к созданию того самого нового репозитория). где «взять» эту секретную часть? там же, где вы «взяли» публичную: вы упомянули команду sudo cp ~/.ssh/id_rsa.pub /home/git/admin.pub, которую выполнили от имени какого-то пользователя. вот в домашнем каталоге этого неназванного пользователя и находится секретная часть ключа. в файле: ~/.ssh/id_rsa что же дальше делать? там же, на сервере, от имени того самого пользователя, чьей публичной частью ключа вы воспользовались при настройке gitolite, сделайте клон репозитория gitolite-admin: $ cd $ git clone git@server:gitolite-admin $ cd gitolite-admin и дальше управляйте gitolite-ом по инструкции. например, если вам надо дать административные полномочия пользователю, владеющему другой парой из публичного и секретного ключа, то: скопируйте новый публичный ключ в каталог keydir под именем, например, admin2.pub. добавьте (через пробел) admin2 в конец строки, начинающейся с @adm = в файле conf/gitolite.conf (это так группа adm описана). добавьте эти файлы в index: $ git add conf/gitolite.conf keydir/admin2.pub сделайте commit: $ git commit -m 'добавлен ключ admin2 в группу adm' отправьте изменения gitolite-у: $ git push p.s. а доступ по паролю к gitolite-у невозможен. только по ключу. потому у вас и ошибка происходит. дополнение про путь к репозиторию для правильного обращения к репозиториям, управляемым инфраструктурой gitolite, надо указывать лишь их имена. на приведённом примере — не: $ git clone ssh://git@server:/home/git/repositories/gitolite-admin.git а: $ git clone git@server:gitolite-admin
Комментариев нет:
Отправить комментарий