以下命令集可以正常工作
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin [email protected] /cdn-cgi/l/email-protection:repositories/carboncake.git
$ git pull
但是当我尝试以不同的用户身份拉取时,
$ mkdir carboncake
$ cd carboncake
$ git init
$ git remote add origin [email protected] /cdn-cgi/l/email-protection:repositories/carboncake.git
$ git pull
我收到以下错误
fatal: 'repositories/carboncake.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
my 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
and the 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
- 更新
I tried $ git remote add origin [email protected] /cdn-cgi/l/email-protection:carboncake.git
也是,但是同样的错误。
实际上carboncake.git位于/srv/gitosis/repositories/carboncake.git
为了给@VonC(完全正确)的答案添加一点简单的英语清晰度......
gitosis (不再处于积极开发中,您应该使用 gitolite,但这个答案适用于它们)将每个用户的公钥存储在(在您的情况下)~gitosis/.ssh/authorized_keys
。当用户通过 ssh 连接到帐户时gitosis
,ssh 进行加密握手,在authorized_keys 文件中找到与提供的密钥匹配的行,并执行该行所说的任何操作。如果您查看该authorized_keys 文件,就会发现每一行都提供了一个在该用户登录时调用的命令,该命令是对 gitosis 进程的调用,其中包含相关用户的名称。
所以每个用户实际上都通过 ssh 访问相同的用户gitosis
“机器”帐户,但他们使用 SSH 的密钥会以他们的用户身份启动 gitosis。这就是 gitosis 知道它正在与哪个用户交谈的方式,即使他们已经登录到名为 的同一个“机器”帐户gitosis
.
因此,您想要跟踪到 gitosis 的每个本地存储库都需要提供格式的远程版本[email protected] /cdn-cgi/l/email-protection:<reponame>.git
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)