【问题标题】:Clone remote git repository problem克隆远程git仓库问题
【发布时间】:2010-09-09 15:14:54
【问题描述】:

我正在尝试启动并运行一个 git 存储库,并在我的远程 ubuntu 8.04 服务器上安装了 git 和 gitosis。我还在本地 ubuntu 10.04 机器上运行 git。

经过大量尝试让这一切正常工作后,我设法让 ssh 密钥正常工作。当我输入时:

ssh git@myserver.com

它返回:

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

错误:gitosis.serve.main:环境中需要 SSH_ORIGINAL_COMMAND。

与 123.456.789.1 的连接已关闭。

据我了解,这意味着我成功连接到服务器并且 ssh 密钥被接受,但是因为它没有收到任何命令,所以它关闭了连接。

当我尝试获取 repo 时:

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

返回:

在 /home/git/repositories/gitosis-admin/.git/ 中初始化空的 Git 仓库

git@myserver.com 的密码:

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

从这一点开始,我不知道如何将远程 repo 获取到我的本地机器,以便我可以开始使用 git。我希望有人能指出我正确的方向。

【问题讨论】:

    标签: git ubuntu gitosis


    【解决方案1】:

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

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

    解决方案:

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

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

    【讨论】:

    • Tnx!!我花了 2 天的时间试图让它工作.... 解决方案非常简单。删除 sudo 解决了问题,现在我的 git 存储库已启动并运行和使用。 :-)
    猜你喜欢
    • 1970-01-01
    • 2016-04-27
    • 2011-04-09
    • 1970-01-01
    • 2021-08-26
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    相关资源
    最近更新 更多