我在远程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尝试其中任何一个。
答案 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修复了一些东西。