以下一组命令正常工作

$ 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 (在这里假设一个“ gpitomis”帐户)。

另外,您不必指定回购的完整路径:

 git remote add origin gitosis@myserver.net:carboncake.git

其他提示

为 @vonc(完全正确)的答案添加一些简单的英语清晰度...

gitosis(不再是积极开发,您应该使用Gitolite,但此答案适用于两个),将每个用户的公共钥匙存储在(就您而言)中 ~gitosis/.ssh/authorized_keys. 。当用户ssh'es到帐户时 gitosis, ,SSH进行加密握手,在该授权_Keys文件中找到一条与提供的密钥相匹配的行,并执行该行所说的一切。如果您查看该授权_keys文件,每行将在该用户登录时提供一个命令,该命令是对Gitosis过程的调用,并带有相关用户的名称。

因此,每个用户真的很适合 gitosis “机器”帐户,但是他们在那里的钥匙是用用户射击的。这就是Gitosis知道与哪个用户交谈的方式,即使他们登录了一个名为的“机器”帐户 gitosis.

因此,您需要为gitosis跟踪的每个本地存储库都需要给予格式的遥控器 gitosis@your.server:<reponame>.git.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top