tortoisesvn - 无法让 Tortoise SVN 正确使用 SSH
问题描述
我正在使用 Phabricator 来托管 Subversion 存储库。在从旧存储库导入之前,它目前是空的。
这是我到目前为止所做的:
- 使用 puttygen 生成密钥对并保存。
- 将相同的密钥对导出为 OpenSSH 格式,并将其保存到我的 MSys2 环境中的 $HOME/.ssh/svn.key 中。
- 设置 $HOME/.ssh/config 以在我的 MSys2 环境中为我的主机添加一个条目。
- 将我的公钥放入 Phabricator。
- 使用 MSys2 环境对
svn list
存储库执行命令。这行得通。 - 使用 PuTTY 使用预配置的主机名、端口、用户名和私钥(之前生成的那个)设置会话。
- 使用 PuTTY 打开上面的会话。这行得通。我禁用了自动关闭窗口,显示的文本与我在 MSys2 环境中的命令行上 SSH 时显示的文本相同。
- 在 TortoiseSVN->Settings->Network 对话框中明确设置 TortoisePLink.exe。
- 使用 TortoiseSVn 使用格式的 URL 浏览存储库,
svn+ssh://<PuTTY session name>/<repo path>
其中存储库路径与使用 MSys2 时完全相同。
最后一步不起作用。TortoiseSVn repo 浏览器暂停一段时间,然后报告“网络连接意外关闭”。
我知道正在使用 PuTTY 会话,因为如果我从会话配置中删除用户名,TortoiseSVN 会询问我要使用的用户名。
我刚刚发现,如果我再次重试相同的 URL,它就会成功。
我已经升级到 TortoiseSVN1.10 并没有什么区别。
我在调试模式下运行了 SSH 守护程序,并且在接近日志末尾时看到:
debug3: mm_request_send entering: type 113
debug3: mm_request_receive entering
debug3: monitor_read: checking request 113
debug3: mm_answer_audit_command entering
debug2: fd 3 setting TCP_NODELAY
debug3: ssh_packet_set_tos: set IP_TOS 0x08
debug2: fd 9 setting O_NONBLOCK
debug2: fd 8 setting O_NONBLOCK
debug2: fd 11 setting O_NONBLOCK
debug3: send packet: type 99
debug2: channel 0: read 13 from efd 11
debug2: channel 0: rwin 2147483647 elen 13 euse 1
debug2: channel 0: sent ext data 13
debug2: channel 0: read 11 from efd 11
debug2: channel 0: rwin 2147483634 elen 11 euse 1
debug2: channel 0: sent ext data 11
Connection closed by 192.168.0.101 port 52769
到目前为止,一切看起来都很好。192.168.0.101 是我的 TortoiseSVN 机器。我希望我能以某种方式看到 TortoiseSVN 在说什么以及 SVN 服务器在回复什么。
解决方案
推荐阅读
- angular-dart - angular dart 是否有内置函数可以从字符串中删除非法文件名字符
- azure - Azure Function - 从 Azure Function (C#) 中调用 Google API
- unit-testing - Nestjs - 模拟静态函数,无需模块即可进行测试
- hibernate - 带有 Hibernate 二级缓存的自然 ID
- .net - 错误 CS0246:找不到类型或命名空间名称(您是否缺少 using 指令或程序集引用?)
- typescript - 从对象中选择正确的函数签名
- docx - 如何使用 Pandoc 根据 docx 中的标题级别缩进文本?
- microsoft-graph-api - 无法更新现有架构扩展
- postgresql - 在 JSONB[] 列 postgres 中返回值
- windows - 使用 ansible 在 Windows 中排除删除某些文件的任何选项