克隆远程git存储库问题

时间:2010-09-09 15:14:55

标签: git ubuntu gitosis

我正在尝试启动并运行git存储库并在我的远程ubuntu 8.04服务器上安装git和gitosis。我也在我当地的ubuntu 10.04机器上运行git。

在尝试将所有工作完成后,我设法让ssh键工作。当我输入:

  

ssh git@myserver.com

它返回:

  

通道0上的PTY分配请求失败

     

错误:gitosis.serve.main:在envirement中需要SSH_ORIGINAL_COMMAND。

     

关闭123.456.789.1的连接。

据我所知,这意味着我已经成功连接到服务器并且接受了ssh密钥,但由于它没有得到任何命令,因此它关闭了连接。

当我试图获得回购时:

  

sudo git clone git@myserver.com:gitosis-admin.git

它返回:

  

/home/git/repositories/gitosis-admin/.git /

中初始化的空Git存储库      

git@myserver.com的密码:

问题是,我没有设置密码或短语,也不接受空密码或服务器密码或本地机器密码。我知道它根本不应该要求输入密码,因为它应该接受ssh密钥(没有密码)并开始下载。

从这一点来说,我不知道如何将远程仓库发送到我的本地机器,所以我可以开始使用git了。我希望有人能指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

身份验证在您的第一次测试(ssh git@server)中有效。如果身份验证失败(或因提示而停滞),您将永远不会看到来自 gitosis 的消息。当您尝试执行正常的非命令 ssh 而不是让 git 在内部使用 ssh 时,会出现您报告的警告和错误

但是,您在稍微不同的环境中(在 sudo 下)完成了克隆。问题可能是 sudo 下的 ssh 没有使用非 sudo 的私钥,测试 ssh 正在使用。在我的测试中,sudo ssh始终使用来自~root/.ssh的文件,即使HOME指向普通用户的主目录。

解决方案:

  • 放弃使用 sudo 来克隆存储库。
  • 以root身份生成另一个SSH密钥对,并将其公共组件添加到您的gitosis配置中。

还有另外一种方式,但它是一种丑陋的方式;我只会暗示它,因为对我来说这似乎是个坏主意。您可能会滥用root权限来读取其他用户的私钥文件(如果有密码,您仍然需要输入密码)。