设置Gitosis,但不能克隆

时间:2009-07-23 21:12:36

标签: git ssh cygwin gitosis

我在远程Ubuntu盒子上设置了Gitosis,我将在以下命令中将其称为linuxserver作为我的主机。我也是使用Cygwin从Windows框连接。

我按照以下说明操作:http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

在我需要将gitosis-admin存储库克隆到本地计算机

之前,我没有遇到任何问题
git clone git@linuxserver:gitosis-admin.git

当我执行此操作时,该命令会执行,但挂起则不显示任何内容,直到我按ctrl-c返回命令提示符。根本没有显示任何消息。

我很确定我的ssh密钥设置正确,因为使用“ssh linuxserver”登录我的常规帐户可以很好地工作,而无需输入密码。

编辑:在周末,我在家里设置了一个几乎相同的Ubuntu盒子,并且没有设置Gitosis的问题。唯一的区别是我从OSX而不是Cygwin连接。

编辑:我还发现当使用“Git Extensions”提供的Bash Shell时,我没有问题,所以这个问题肯定是某种Cygwin冲突。

编辑只是一个更新,但在发布此问题大约一个月后,我切换到Mercurial,发现我比Git更喜欢它。感谢您的建议,但我不打算回到git尝试其中任何一个。

6 个答案:

答案 0 :(得分:3)

我还建议在conf。

中设置调试选项
[gitosis]
loglevel = DEBUG

答案 1 :(得分:1)

您是否在服务器上查看/var/log/messages了? 可能是用户名'git'无法正常工作:来自comments of Gitosis

如果查看authorized_key文件,您将看到它没有导入生成密钥的系统名称,而是导入服务器框的名称。

示例:使用“git”用户名导致授权密钥

root@git-repo:/home/git/.ssh# cat authorized_keys command=”gitosis-serve root@git-repo”

更改为用户名“gitosis”后,它看起来像这样

root@git-repo:/home/gitosis/.ssh# cat authorized_keys command=”gitosis-serve myuser@mylocalbox”, 

要修复我用/ home / gitosis的主目录创建了一个用户gitosis并再次运行git-init脚本。

sudo -H -u gitosis gitosis-init < /tmp/id_rsa.pub
sudo chmod 755 /home/gitosis/repositories/gitosis-admin.git/hooks/post-update

然后,在本地方框..

git clone gitosis@YOUR_SERVER_HOSTNAME:gitosis-admin.git

答案 2 :(得分:1)

我发现these instructions提供了更多关于安装gitosis时你在做什么的解释。可以帮助别人。

答案 3 :(得分:1)

我遇到了和你一样的问题,我解决问题的方法是将用户“git”添加到服务器上ssh配置文件中的允许用户。一个基本的疏忽 - 是的 - 但是当我遵循相同的教程并且没有提到这一步时,很容易就会有其他人忘记将git用户添加到ssh配置文件中。

答案 4 :(得分:1)

我的电脑上有类似的问题。我在Archlinux上安装了gitosis,它在运行时运行

git clone ssh://git@localhost/oslab.git

但是,如果我将localhost更改为IP,如192.168.1.1,它会挂起。

答案 5 :(得分:0)

如果其他人遇到此问题,并且尝试从也安装了Msys Git的客户端上的Cygwin环境进行连接,请检查GIT_SSH环境变量的值。它应该是未设置或等于/ usr / bin / ssh而不是plink.exe

我能够以git用户的身份ssh到服务器(具有gitosis脚本的预期拒绝),但是我无法克隆。

我意识到发生了一些奇怪的事情,因为git仍然警告主机是未知的,而直接的ssh连接没有。当我查看strace

的输出时,这已得到证实
strace git clone git@server:gitosis-admin.git | less

搜索sting“ssh”,显示GIT_SSH指向plink.exe - Msys Git使用的putty ssh客户端。不确定为什么plink.exe不起作用,但设置GIT_SSH = / usr / bin / ssh修复了一些东西。