【问题标题】:Git clone "fatal: I don't handle protocol 'ssh'"Git克隆“致命:我不处理协议'ssh'”
【发布时间】:2018-10-02 04:57:57
【问题描述】:

我在本地机器上创建了一个存储库,并要求同事克隆它,但它说它无法处理 SSH 协议。在我的计算机中,存储库位于/devel/scripts.git,并且有一个名为devel 的用户可以访问该文件夹。另一个人可以正常克隆它,使用git clone ssh://devel@192.168.0.7/devel/scripts.git

我们都在使用 Ubuntu,我和有问题的机器是 12.04(我可以使用与远程相同的 URL 从另一个文件夹推送),而另一个人使用的是 13.04。

最后,出现问题的机器可以通过 SSH 正常访问该用户。

【问题讨论】:

  • "正常" -- 使用什么身份验证 -- 密码、密钥还是什么?
  • 我在命令“git pull origin master”期间收到与“致命:我不处理协议'ssh'”相同的错误。有人知道吗???

标签: git unix ssh


【解决方案1】:

查看 .git/config 中的 url,在我的例子中,协议部分中有控制字符。当 git 生成它的错误消息时,这些是不可见的。

将错误消息复制/粘贴到其他位置时,可能会显示控制字符:

【讨论】:

  • 基于这个想法,我手动重新输入了整个 git clone 命令,而不是复制粘贴它,可能会删除一些控制字符
  • 通常只需取消并重新键入“clone ssh”部分就足够了(因为控制字符通常在 ssh 之前)
【解决方案2】:

我在 Cygwin 中的 Windows 上遇到了同样的问题,并且能够通过将协议更改为“git+ssh”来解决该错误。

git clone git+ssh://devel@192.168.0.7/devel/scripts.git

【讨论】:

    【解决方案3】:

    解决此问题的一种方法是使用引号明确提及地址。 而不是使用: git clone ssh://devel@192.168.0.7/devel/scripts.git

    尝试: git clone 'ssh://devel@192.168.0.7/devel/scripts.git'

    【讨论】:

      【解决方案4】:

      我从 Windows Git GUI 尝试时遇到了类似的问题。我通过 Git Bash 执行了该命令,它对我有用,没有出现此错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-24
        • 2016-12-12
        • 2016-05-22
        • 2013-08-07
        • 2017-06-30
        • 2011-09-07
        • 1970-01-01
        • 2020-03-20
        相关资源
        最近更新 更多