Аутентификация GIT - тянуть в качестве нового пользователя

StackOverflow https://stackoverflow.com/questions/5803404

  •  24-10-2019
  •  | 
  •  

Вопрос

Следующий набор команд сработал правильно

$ 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top