git over ssh: доступ на чтение репозитория запрещен - PullRequest
1 голос
/ 23 сентября 2011

У меня настроен git-сервер в Linux, и он отлично работает:

[git@HOST ~]$ git clone -v git://HOST.com/repositories/Extras
Cloning into Extras...
remote: Counting objects: 12, done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 12 (delta 3), reused 0 (delta 0)
Receiving objects: 100% (12/12), 23.54 MiB | 16.63 MiB/s, done.
Resolving deltas: 100% (3/3), done.

Обратите внимание, что HOST.com не является реальным. :)

Теперь я бы хотел, чтобы то же самое работало над SSH, чтобы я мог добавить конфиденциальность и аутентификацию. На данный момент не работает:

[git@HOST ~]$ git clone -v ssh://HOST.com/repositories/Extras
Cloning into Extras...
Enter passphrase for key '/home/git/.ssh/id_rsa':
ERROR:gitosis.serve.main:Repository read access denied
fatal: The remote end hung up unexpectedly

Похоже, соединение SSH работает, но у git проблемы с разрешениями. SELinux не включен.

В / var / log / messages я вижу следующее:

Sep 23 16:26:18 HOST sshd[32115]: Accepted publickey for git from X.X.X.X port 51023 ssh2
Sep 23 16:26:18 HOST sshd[32116]: fatal: mm_request_receive: read: Connection reset by peer
Sep 23 16:26:18 HOST sshd[32115]: pam_unix(sshd:session): session opened for user git by (uid=0)
Sep 23 16:26:19 HOST sshd[32121]: Received disconnect from X.X.X.X: 11: disconnected by user
Sep 23 16:26:19 HOST sshd[32115]: pam_unix(sshd:session): session closed for user git

У кого-нибудь есть совет, где мне начать искать?

Спасибо! Mike

Ответы [ 3 ]

0 голосов
/ 23 сентября 2011

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

Для вашей текущей проблемы попробуйте получить доступ через SSH с параметром -vvvv, чтобы увидеть подробный отладочный вывод, какой ключ

Надеюсь, это поможет.

0 голосов
/ 24 сентября 2011

Спасибо всем ... В конце концов я пошел с гитолитом, но это не было источником проблемы. Это было ключевое несоответствие между клиентом и сервером SSH ... Простая вещь, которую я решил проверить. Как только я сопоставил ключ пользователя .pub, который я зарегистрировал с помощью git, и его ~ / .ssh / id_rsa.pub, все стало работать как положено.

Спасибо!

Mike

0 голосов
/ 23 сентября 2011

Похоже, вы используете Gitosis. Вы настроили свой {{gitosis.conf}} для разрешения доступа к репозиторию, который вы пытаетесь использовать? Вы установили свой открытый ключ?

Начните с включения журнала отладки в вашей конфигурации gitosis:

[gitosis]
loglevel = DEBUG

Это приведет к подробному ведению журнала при соединении с ssh.

Наиболее распространенные причины этой проблемы: выделенный текст - Опечатка в хранилище или имя пользователя. - Установлен неправильный ключ или имя файла ключа не соответствует имени пользователя в конфигурации.

Выходные данные отладки будут эффективно освещать эти проблемы. Например, подключение к нашему локальному репозиторию gitosis с входом в систему отладки включает следующее:

Access check for 'lars@obliquity.example.com' as
  'writable' on 'gitosis-admin.git'...

(Показывает, кто такой гитоз, как я.)

found 'lars@obliquity.example.com' in 'admins'

(показывает, с какой группой я связан.)

Access ok for 'lars@obliquity.example.com' as
  'writable' on 'gitosis-admin'

(И это показывает мой доступ.)

...