Конфигурирование ssh с помощью Git - PullRequest
0 голосов
/ 17 июня 2011

Я сделал следующее,

  1. Создан один аккаунт для Git
  2. Создан голый репозиторий
  3. Используя команду ssh-keygen -t rsa, я создаю открытый ключ для двух учетных записей (одна из них - git), K
  4. добавлены оба открытых ключа (расположены в /home/user/.ssh/id_rsa.pub) в файле author_keys в каталоге .ssh (учетная запись git).
  5. клонировал репозиторий двумя учетными записями
  6. Учетная запись Git может отправлять изменения на сервер (запрашивает пароль)
  7. для другой учетной записи запрещается выдвигать изменения, не запрашивать пароль, запрашивать пароль.

В чем может быть проблема?

Это вывод:

git push origin master
Offending key for IP in /home/user01/.ssh/known_hosts:15
Matching host key in /home/user01/.ssh/known_hosts:51
Are you sure you want to continue connecting (yes/no)? yes
user01@gitserver's password: Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 317 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
error: insufficient permission for adding an object to repository database ./objects
fatal: failed to write object error: unpack failed: unpack-objects abnormal exit  

1 Ответ

1 голос
/ 17 июня 2011

Если я вообще понимаю, о чем вы спрашиваете (это немного расплывчато), у вас возникли проблемы с настройкой общего репозитория Git, к которому у нескольких пользователей должен быть доступ?

Полагаю, этокакой-нибудь сервер linux / unix / bsd?


Что я сделал в нашей компании, так это то, что у всех нас есть пользователь на сервере с пустым хранилищем в нашей домашней папке (используется как частныйпубличное зеркало нашего рабочего репо).И у нас есть отдельный пользователь с именем «git», который является членом группы, также называемой «git», с голым репо, который служит своего рода каноническим общим репо.Все разработчики также находятся в группе "git", и репозиторий git доступен группе.(Наши частные репозитории в нашем доме все остальные имеют доступ только для чтения, поэтому они могут извлекать данные, но мы можем без проблем выполнить команду git push --mirror.)

Конфигурация ssh для каждого пользователя, и я получаю доступ к общему репо.с помощью этого пульта:

[remote "commonRepo"]
    url = ssh://<myUserName>@testServerName/~git/commonRepo.git
    fetch = +refs/heads/*:refs/remotes/commonRepo/*

Особенности настройки открытых ключей я не помню, поскольку я делаю это только каждые 3 года или около того ... Но у нас нет ключей ssh, подключенных к "git "user, мы используем наши собственные ssh-ключи для нашего собственного пользователя и полагаемся на групповые разрешения в Linux, чтобы получить доступ к общему репо.

Убедитесь, что биты с ошибками (или то, что они называют) правильно установленына сервере, чтобы при переходе к общему репо владелец не менялся (что вызывает всевозможные ошибки)

...