首页 > 解决方案 > 带有私钥身份验证的 Netbeans SVN

问题描述

我的网络主机上有一个 SVN 存储库设置。两天来,我一直在努力让 Netbeans 使用带有私钥身份验证的 SSH 与 SVN 存储库进行交互。我正在使用 Netbeans 中内置的 SVNKit 客户端。如果我使用用户名和密码字段访问存储库,一切正常。但是,每当我尝试使用私钥身份验证时,我都会收到以下消息:

org.apache.subversion.javahl.ClientException:E200015:身份验证已取消

我知道存储库 URL 和私钥是有效的。我可以使用带有私钥的 PuTTy 轻松登录远程 SSH。当我绝对确定存储库 URL 和私钥都有效并且在 Netbeans 之外可以正常工作时,有谁知道为什么 Netbeans SVNKit 将无法通过私钥进行身份验证。

我应该注意,公钥和私钥是使用 PuttyGen 生成的,私钥上没有密码。

标签: svnnetbeanssvnkit

解决方案


我终于设法解决了这个问题。我安装了 SlikSVN 并将 Netbeans 配置为与 SlikSVN 一起工作(工具 > 选项 > 团队 > 版本控制 > Subversion - 将首选客户端设置为 JavaHL 并将客户端路径设置为 SilkSVN Bin 文件夹),而不是使用与 Netbeans 捆绑的 SVNKit 版本。我相信捆绑版本的 SVNKit 不起作用的原因是因为我使用的是独立的“OS Independent Zip”版本的 Netbeans。此外,SVN 服务器上的 authorized_keys 文件中的每个密钥都必须在一行中,并且没有换行符。我的 Web 服务器上的 authorized_keys 文件中的换行符导致了一些额外的问题,一旦我删除了换行符并确保每个私钥都包含在它自己的行中,这些问题就得到了解决。我在这里发布答案,以防其他人遇到类似问题。


推荐阅读