gitolitepipe理由fallthru拒绝

我在我的MacBook上遇到SSH密钥和gitolite问题。

Gitolite运行在我的debian服务器上: gitolite3 3.6.4-1 (Debian) on git 2.7.4

gitolite-admin / keydir我有钥匙bob.pub和admin.pub他们是不同的钥匙。

我的conf文件基本上是:

 # this repo repo gitolite-admin RW+ = admin repo myrepo RW+ = bob 

我的〜/ .ssh / config文件就是这样来指定我们使用不同的端口:

 Host gitserver IdentityFile ~/keys/bob Port 2222 

我正在testing命令:

 git clone git@gitserver:myrepo.git 

这些是/home/git/.gitolite/logs/下的日志

当从我的Linux系统的SSH,它工作正常。

 2016-10-14.15:54:53 11635 ssh ARGV=bob SOC=git-upload-pack 'myrepo' FROM=192.... 2016-10-14.15:54:53 11635 pre_git myrepo bob R any refs/.* 2016-10-14.15:54:53 11635 system,git,shell,-c,git-upload-pack '/home/git//repositories/myrepo.git' 2016-10-14.15:54:53 11635 END 

但是,当我用我的MacBook Air上的SAME键做同样的事情时,似乎是这样

 2016-10-14.15:56:07 11652 ssh ARGV=admin SOC=git-upload-pack 'myrepo' FROM=192.168.0.105 2016-10-14.15:56:07 11652 die R any myrepo admin DENIED by fallthru<<newline>>(or you mis-spelled the reponame) 

我认为正在发生:

  1. 底层的ssh连接使用正确的用户(git)和密钥(bob)进入服务器。 这是完成使用/home/git/.ssh/authorized_keys(由gitolite生成)我可以在这个文件中看到command="/usr/share/gitolite3/gitolite-shell bob"显示与该键匹配的命令参数是正确。

  2. 但是,在SSH连接之后,出于某种原因,命令被更改为具有bob!的参数admin INSTEAD。

再次。 这不会发生在我的Linux机器上。 这只发生在我的MacBook上。

Mac能做些什么是我可以克隆testing或gitolitepipe理。 即使使用bob键,当它真的应该是pipe理员密钥! 我认为这实际上可能是groomight中的一个安全漏洞!

我在跑步。 3.6.4和3.6.5或3.6.6的发行说明中没有任何内容表示修复。

对于来到这里也遇到类似问题的任何人,邮件列表上的gitolite作者的回复是: https : //groups.google.com/d/msg/gitolite/VRLAQaN2QoE/7EWN1I82BQAJ

我build议你在〜/ .ssh / config文件中加上“IdentitiesOnly”这个词,然后重试。 杀ssh代理,钥匙链,或任何types的野兽,并重新启动它们,只添加“bob”键。

为了达到最佳效果,请将pipe理员私钥全部移出。