无法克隆代码库:FATAL:由于 fallthru 拒绝,R 任何 gitolite-admin gitolite

7

我第一次设置gitolite,正在按照此说明进行操作。

当我通过ssh连接时,看起来很正常:

$ ssh -p 2222 gitolite@debian
PTY allocation request failed on channel 0
hello gitolite, this is gitolite@debian running gitolite3 v3.5.3.1-1-gf8776f5 on git 1.7.2.5

 R W    gitolite-admin
 R W    testing
Connection to debian closed.

但是在尝试克隆时,它给出了以下错误:
$ git clone ssh://gitolite@debian:2222/home/gitolite/repositories/gitolite-admin.git
Cloning into 'gitolite-admin'...
FATAL: R any home/gitolite/repositories/gitolite-admin gitolite DENIED by fallthru
(or you mis-spelled the reponame)
fatal: The remote end hung up unexpectedly

我试图从yasin@vonneumann账户中克隆。我将该用户的RSA公钥上传到debian服务器,并将其重命名为gitolite.pub,然后运行gitolite setup -pk gitolite.pub,没有任何消息或错误。然后在yasin@vonneumann主机上,我创建了一个文件~/.ssh/config,其内容如下:

host debian
     user gitolite
     hostname debian
     identityfile ~/.ssh/gitolite

(我还将id_rsa复制为gitolite放置于vonneumann中)

我觉得这个问题类似,但回答对我没有用。

非常感谢任何帮助。


3
关于关闭投票:有关计算机硬件和软件的一般问题在 Stack Overflow 上是不适合讨论的,除非它们直接涉及主要用于编程的工具。这里还有很多关于 Git/Gitolite 的问题。 - m0skit0
仅供记录(因为我遇到了相同的错误,但原因不同):请确保您实际上没有在gitolite的配置文件中放置完整的密钥文件名,因为您需要去掉.pub扩展名。(这个扩展名是由gitolite自动添加的)。因此,对于keydir/id_rsa-yasin.pub作为授权密钥,当引用它时,在config/gitolite.conf中需要使用id_rsa-yasin - Cromax
@Cromax 正确,但是你将无法获得第一个命令中显示的权限。 - m0skit0
好的,我明白了——因为这个“test”仓库带有默认配置(SSH连接参数、用户、身份文件都设置正确)。所以乍一看,似乎我没有其他配置的仓库的读取许可权,这让我感到惊讶。(我原本认为我根本没有推送配置...但其实我已经推送了)......然后我注意到了这个*.pub该死的东西。;-) - Cromax
1个回答

5
如果您拥有一个~/.ssh/config文件,则需要使用类似于scp语法来作为您的ssh url:
git clone debian:gitolite-admin.git

使用以下配置:

host debian
  user gitolite
  hostname debian
  identityfile ~/.ssh/gitolite
  port 2222

而且您不应该指定存储库的完整路径。

谢谢,运行得很好;我的SSH知识非常基础。顺便说一下,它没有ssh://前缀,有了这个前缀就无法工作:ssh: Could not resolve hostname : Name or service not known - m0skit0
1
@m0skit0,没错,我已经编辑了答案,删除了 ssh://,并添加了另一个类似于 scp 语法的示例链接。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接