Аутентификация GIT - тянуть в качестве нового пользователя
Вопрос
Следующий набор команд сработал правильно
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin gitosis@myserver.net:repositories/carboncake.git
$ git pull
Но когда я попытался вытащить в качестве другого пользователя,
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin mithun@myserver.net:repositories/carboncake.git
$ git pull
Я получил следующую ошибку
fatal: 'repositories/carboncake.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
мой gitosis.conf
содержит
[gitosis]
[group team]
writable = sweepshots
members = git_id_rsa
[group gitosis-admin]
writable = gitosis-admin
members = git_id_rsa
[repo carboncake]
description = A brand new app by Mithun.
owner = Mithun P
[group carboncake]
writable = carboncake
members = mithun @core
и keydir
содержитgit_id_rsa.pub KEY-----.pub mithun.pub mithun-rsa-key-20110427.pub
и пользователь .ssh
DIR содержит
mithun@testserver:~$ ls .ssh/
id_rsa id_rsa.pub mithun_rsa mithun_rsa.pub
-- ОБНОВИТЬ
Я старался $ git remote add origin mithun@myserver.net:carboncake.git
тоже, но та же ошибка.
На самом деле Carboncake.git расположен в /srv/gitosis/repositories/carboncake.git
Решение
mithun@myserver.net
?
Используя mithun@myserver.net
, вы полностью обходите гитоз, так как правильный URL -адрес включаетgit
«Пользователь, под которым был установлен гитолит.
Каждая команды гитоза будет включать в себя одного и того же пользователя «git»: gitosis@myserver.net
(при условии учетной записи «гитоза» здесь).
Кроме того, вам не нужно указывать полный путь репо:
git remote add origin gitosis@myserver.net:carboncake.git
Другие советы
Чтобы добавить немного ясности в простого английского языка @Vonc's (совершенно правильный) ответ ...
Гитоз (который больше не в активном развитии, и вы должны использовать гитолит, но этот ответ применим к ним обоим) хранит общие ключи каждого пользователя (в вашем случае) ~gitosis/.ssh/authorized_keys
. Анкет Когда пользователь переходит в учетную запись gitosis
, SSH делает криптографическое рукопожатие, находит строку в этом файле Authorized_keys, который соответствует предоставленной клавишу, и делает все, что говорит эта строка. Если вы посмотрите на этот файл offisted_keys, каждая строка предоставляет команду для вызова, когда этот пользователь входит в систему, что является вызовом процесса гитоза, носящий имя рассматриваемого пользователя.
Так что каждый пользователь действительно SSH'ing к одному и тому же gitosis
Учетная запись "Машины", но ключ, который они там снимают с гитозом, как пользователь. Вот как гитоз знает, с каким пользователем он разговаривает, даже если они вошли в ту же «машину», названную gitosis
.
Таким образом, каждому местному репо, вы хотите отслеживать гитоз, необходимо получить отдаленный формат gitosis@your.server:<reponame>.git
.