Не удается клонировать репозиторий git с новым пользователем

моя установка ubuntu-gitolite-msysgit. После выполнения этого руководства:

https://sites.google.com/site/senawario/home/gitolite-tutorial

Все работает нормально.

Итак, я модифицировал и закоммитил файл конфигурации:

repo    gitolite-admin
        RW+     =   id_rsa

repo    testing
        RW+     =   @all

repo    project-euler
        RW+     =   tester

Все обновилось и т.д.

Теперь я хотел бы проверить это с пользователем «тестер», но я не могу. Разве git clone tester@myServer:project-euler не должен работать?

Если я попробую вышеизложенное, я получу:

$ git clone [email protected]:project-euler
Cloning into project-euler...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Я попробовал это с той же машины, которую использовал для администрирования git.

Если я попытаюсь использовать это:

git [email protected]:project-euler

Я получаю: R доступ для проекта-эйлера DENIED к id_rsa

Я думаю, что это нормально, поскольку у пользователя git нет доступа.

Любые идеи?

После перехода по ссылкам @VonC я создал файл конфигурации, как уже упоминалось. У меня все еще та же проблема, поэтому я развлекаюсь с ssh -v с пользователем в беде. Результат:

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /c/Users/Stefanos/.ssh/config
debug1: Applying options for 192.168.1.3
debug1: Connecting to 192.168.1.3 [192.168.1.3] port 22.
debug1: Connection established.
debug1: identity file /c/Users/Stefanos/.ssh/tester type 1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.3' is known and matches the RSA host key.
debug1: Found key in /c/Users/Stefanos/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /c/Users/Stefanos/.ssh/tester
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

ОБНОВЛЕНИЕ

Мне удалось клонировать репо, используя git clong git@server:repo, а не tester@server:repo.

Также, если у меня есть файл конфигурации, я не могу войти в систему как администратор. Он регистрируется только как тестер. Вероятно, должен быть способ настроить это. Спасибо за вашу помощь.


person FailedDev    schedule 11.08.2011    source источник
comment
Вы скопировали открытый ключ tester?   -  person Simon    schedule 11.08.2011
comment
Я скопировал их ключ в каталог /keydir, а затем отправил измененный с моей учетной записью git. Все работало. Я дважды проверил это, удалив репозиторий и снова клонировав его, а затем проверив, был ли там новый ключ (он был).   -  person FailedDev    schedule 11.08.2011


Ответы (2)


Первое, что нужно сделать, это проверить, был ли открытый ключ этого нового пользователя опубликован на сервере gitolite.

  • Проверьте содержимое ~git/.ssh/authorizedkeys и найдите в нем строку с тестером.
  • Проверьте содержимое репозитория gitolite-admin/keydir и найдите файл «tester.pub» с открытым ключом в нем (не забудьте эти открытые ключи названы в честь пользователя: tester.pub здесь)
  • проверьте, есть ли у тестировщика в его/ее .ssh его id_rsa и id_rsa.pub.
person VonC    schedule 11.08.2011
comment
Спасибо за ответ! Я действительно проверил ~git/.ssh/authorizedkeys, и ключ был там вместе с командой синтаксиса git и т. д., но ключ был там, как и ключ администратора. Также tester.pub был там же в /keydir на сервере. Что касается третьей части, мне нужно создать еще одну учетную запись на моем компьютере (Win7), а затем ввести C:/Users/tester/.ssh/закрытый ключ? - person FailedDev; 11.08.2011
comment
@FailedDev: ключ был здесь, но вы можете скопировать эту строку? Просто чтобы проверить, было ли оно там с правильным именем. - person VonC; 11.08.2011
comment
@FailedDev: вам не нужно создавать новую учетную запись, вам нужно только выбрать правильные открытые / закрытые ключи при выполнении ваших запросов ssh. См. файл конфигурации, например, в stackoverflow .com/questions/5357232/ или stackoverflow.com/questions/922210/ - person VonC; 11.08.2011
comment
Извините, я не могу скопировать строку прямо сейчас, я на работе, и все заблокировано. :) Я опубликую, когда у меня будет что-то новое. Спасибо за помощь! - person FailedDev; 11.08.2011
comment
Строка: command=/home/git/bin/gl-auth-command tester, no-port-forwarding, no-X11-forwarding, no-agent-forwarding, no-pty ssh-rsa Pkod0ENDPpMKz2Q5UzVVJdmFCzzCpoqbulik9SIaiBAbfS / Зоб / д + YdfjoxDLSLd1SuebhOzwpmSec / mlorGAVkcrr8nvFoW6pmKQcf8RIxkwc / poBw8CPmW3BSYY7i4Cs9ahw / yxUEgGDUyEAEN3moupsbezCb7a + JtAi2cRkm7VH8iliOb2nC8v / 42SjUYNQm4Q4cBSAm / hh9TfSCNHuE7rXde + wG6jkPrZSl1eXnwxoScSwu04bF9sCqmkBkF723kMDu6NN58Q == [email protected] Так что я думаю, что ключ является правильным. Пользователь Git имеет тот же формат. - person FailedDev; 11.08.2011
comment
Во-первых, попробуйте только ssh, чтобы он работал хорошо. Если это не так, попробуйте проверить /etc/ssh/sshd_config, убедитесь, что демон ssh разрешает вашему пользователю войти в систему, тестер AllowUsers, - person scalopus; 11.08.2011

Вы путаете пользователей gitolite с пользователями Linux. Они имеют общие характеристики, но отличаются другими. Вы всегда используете пользователя с именем "git" в URL-адресе git при подключении к gitolite. Независимо от этого, любой пользователь, от которого вы пытаетесь подключиться, должен иметь пару ключей (~/.ssh/id_rsa[.pub]). Итак, скажем, вы "боб". Ваш открытый ключ находится в /home/bob/.ssh/id_rsa.pub. Этот открытый ключ необходимо добавить в конфигурацию gitolite. Допустим, вы назвали его "foo.pub" при добавлении. Теперь «foo» — это действительный пользователь gitolite, на которого вы можете ссылаться в конфигурации. Просто помните, что между вашим локальным пользователем (bob), пользователем, используемым для подключения к gitolite (git), и пользователем gitolite (foo) нет связи, явной или неявной. Единственное соединение — это открытый ключ, который идентифицирует «bob» на вашем локальном компьютере как «foo» для gitolite.

person Ryan Stewart    schedule 11.08.2011
comment
Итак, я предполагаю, что все, что находится в файле конфигурации, определяет текущего пользователя, что означает, что на машине может быть только один пользователь в любой момент времени. Что хорошо, я думаю :) - person FailedDev; 11.08.2011
comment
@Failed: Нет, на самом деле с gitolite вы можете назвать свои файлы публичных ключей, например, [email protected], [email protected] или [email protected], чтобы дать одному пользователю несколько ключей. Имя в @‹name›.pub не имеет особого значения. Это просто в ознакомительных целях для админов gitolite. - person Ryan Stewart; 11.08.2011