4

我已经在远程 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 来尝试其中的任何一个。

4

6 回答 6

3

我还建议在 conf.xml 中设置调试选项。

[gitosis]
loglevel = DEBUG
于 2009-12-16T14:41:39.517 回答
1

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

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

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

于 2009-12-08T12:56:20.150 回答
1

我发现这些说明为您在安装 gitosis 时所做的工作提供了更多解释。可能会帮助某人。

于 2009-11-23T14:02:37.083 回答
1

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

于 2009-12-08T08:51:22.843 回答
1

你检查/var/log/messages你的服务器了吗?
可能是用户名 'git' 无法正常工作:来自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
于 2009-07-24T07:22:11.467 回答
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

搜索刺“ssh”,显示 GIT_SSH 指向 plink.exe - Msys Git 使用的 putty ssh 客户端。不知道为什么 plink.exe 不起作用,但设置 GIT_SSH=/usr/bin/ssh 解决了问题。

于 2010-06-12T12:44:27.580 回答