TortoiseSVN + PuTTY,Win10,网络连接意外关闭

TortoiseSVN + PuTTY, Win10, Network connection closed unexpectedly

总结:当前 TortoiseSVN (1.14.1) 的全新安装不能使用默认密钥的当前 PuTTY (0.76) 的全新安装。错误是“无法连接到位于 URL 的存储库 ... 网络连接意外关闭”,但与谷歌搜索找到的下面链接的问题无关。

我正在尝试在新的 Windows 10 虚拟机上设置 TortoiseSVN。我已经安装了 PuTTY-64 并设置了 Pageant。有一个名为 'svn' 的 PuTTY 保存配置,如果我已经启动了 Pageant,那么连接到 svn 后我将进入 bash 提示符而无需密码。到目前为止,还不错。

从 TortoiseSVN 浏览存储库 svn+ssh://iain.brown@svn/s/svn/sw 显示“无法连接到 URL 'svn+ssh://iain.brown@svn/s/svn/sw' 的存储库。到更好地调试 SSH 连接问题,从 Subversion 配置文件的 [tunnels] 部分的 'ssh' 中删除 -q 选项。网络连接意外关闭。“

URL 已连接。 (可以肯定的是,我从旧的 TortoiseSVN 设置中复制并粘贴了。)PuTTY 配置似乎是正确的,事实上,如果我右键单击资源管理器并将 TortoiseSVN -> 设置 -> 网络 -> SSH 客户端更改为 PuTTY 自己的 plink ,浏览存储库工作正常。除了弹出的 20 多个 windows 之外,我会保持这种状态并结束它。因为我想为其他开发人员复制这个环境,所以我不想处理这会导致的投诉。

所以我 相信 如果 plink.exe 工作它不是配置问题,但我也很难相信这是一个 TortoiseSVN 错误(已经尝试过最后几个版本),除非 PuTTY 和 TortoiseSVN 之间最近出现不兼容问题,但尚未出现在 Google 搜索中。

将 SSH 客户端更改为 TortoisePlink.exe 会产生与将其留空完全相同的连接关闭错误,因此看起来错误确实来自 TortoisePlink。错误是 'Unable to connect to a repository at URL ... Network connection closed unexpectedly',但与通过谷歌搜索该术语发现的下面链接的问题无关。

这里有一个类似的报告:TortiseSVN svn+ssh Error: Unable to connect to a repository at URL ... Network connection closed unexpectedly 引用了解决方案中的 TortoiseSVN FAQ,但是我的 PuTTY 注册表值不包括默认名称,而且似乎没有 shell 配置文件链中的 mesg。 (Subversion 服务器是 Ubuntu 20.04.3 LTS)

经过一天尝试了解 PuTTY 和 TortoiseSVN 何时变得不兼容,我终于弄清楚不是程序版本而是密钥文件的格式发生了变化。如果我将 PuTTY 密钥文件保存为 V2,如此处的答案所示:https://superuser.com/questions/1647896/putty-key-format-too-new-when-using-ppk-file-for-putty-ssh-key-authentication TortoiseSVN 与 PuTTY 一​​起工作,包括 32 位和 64 位当前版本(PuTTY 0.76,TortoiseSVN 1.14.1)。

所以直到 TortoisePlink 识别 V3 PuTTY 密钥文件,我认为这就是答案。