【发布时间】:2011-08-13 18:56:08
【问题描述】:
以下命令集正常工作
$ 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 目录包含
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 用户的 ssh 来绕过 gitosis。您需要始终使用 gitosis 用户,但是由于 git 在他的
$HOME/.ssh/id_rsa.pub中获取了他的公钥,因此会检测到该用户。 -
这就是以 gitosis 的不同用户身份克隆/获取/推送 repo 所需的:您的 HOME 更改,以及发送到 gitosis 的公钥更改。但是用于 ssh 会话的帐户保持不变。