【问题标题】:How to connect to a GIT remote repository with ssh and IPV6 on Windows如何在 Windows 上使用 ssh 和 IPV6 连接到 GIT 远程存储库
【发布时间】:2018-11-18 05:41:11
【问题描述】:

我有一段时间使用 IPv4 和 git 的 Windows 7 设置。我有一台只需要使用 IPv6 访问的机器。

我可以使用 GIT bash SSH 进入机器:

$ ssh git@fe80::14fc:cec5:c174:d88
Last login: Sat Nov 17 14:09:53 2018 from fe80::e119:5811:40e5:becf%en8
ord2-jims14:~ git$

PuTTY 也可以。

对于 GIT,我尝试通过多种方式设置遥控器。

ssh://git@[fe80::14fc:cec5:c174:d88]/repos/repo.git
ssh://git@%5Bfe80%3A%3A14fc%3Acec5%3Ac174%3Ad88%5D/repos/repo.git
ssh://git@fe80::14fc:cec5:c174:d88/repos/repo.git
ssh://git@fe80%3A%3A14fc%3Acec5%3Ac174%3Ad88/repos/repo.git

结果

$ git pull
fatal: protocol error: bad line length character: Usin

在 Windows 上将 IPv6 SSH URL 指定到 GIT 的正确语法是什么?

【问题讨论】:

  • 您将无法使用这样的本地链接地址。如果在 URI 中使用链接本地地址,则必须附加 % 后跟区域(接口)ID,并且所有这些都必须括在括号中 ([])。许多事情不允许在 URI 中使用 IPv6 链接本地地址。
  • 您也无法使用无法路由的 IPv6 链接本地地址连接到远程网络上的计算机。
  • 实际上 - 在我将公钥重新添加到腻子代理后,它起作用了。
  • 我尝试了 % 附加,它导致找不到主机。由于 PuTTY 代理,这可能是 Windows 和 Linux 之间的差异。
  • 如果这是在 Windows 上,那应该是一个错误的区域 ID。我只是将其视为 Windows 上的接口编号。类似%2%9

标签: windows git ssh ipv6 putty


【解决方案1】:

带有 PuTTY 代理的 Windows 上 GIT 的 IPv6 URL 的正确语法是:

ssh://git@[fe80:14fc:cec5:c174:d88%2510]/git/test.repo

根据RFC 2732,冒号不是 URL 转义的,并且需要括号。

本地接口附加到 URL 编码 %2510 的末尾,其中我的本地接口 10 用ipconfig 找到。 %25 是 URL 转义的 % 字符。

Link-local IPv6 Address . . . . . : fe80::e119:5811:40e5:becf%10

当然,前提条件是 GIT 服务器在其.ssh/authorized_keys 中注册了公钥,如果 ssh 命令行从一开始就工作,则无论如何都需要此公钥。

为了让 GIT 使用 URL,在 Windows 上,我必须使用注册了相同公钥的 PAgent(PuTTY 身份验证代理)。此外,如果我省略了接口后缀%2510,该 URL 对我有用,但这不符合标准。

感谢Ron Maupin

【讨论】:

    猜你喜欢
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 2011-05-09
    相关资源
    最近更新 更多