我在Web主机上设置了SVN存储库。两天来,我一直在努力让Netbeans使用带有私钥身份验证的SSH与SVN存储库进行交互。我正在使用Netbeans内置的SVNKit客户端。如果我使用用户名和密码字段来访问存储库,则一切正常。但是,每当我尝试使用私钥身份验证时,都会收到以下消息:
org.apache.subversion.javahl.ClientException:E200015:身份验证已取消
我知道存储库URL和私钥是有效的。我可以使用带有私钥的PuTTy轻松登录到远程SSH。有谁知道为什么当我绝对确定存储库URL和私钥都有效并且可以在Netbeans之外正常工作时,为什么Netbeans SVNKit无法通过私钥进行身份验证。
我应该注意,公钥和私钥是使用PuttyGen生成的,私钥上没有密码。
答案 0 :(得分:0)
我终于设法解决了这个问题。我安装了SlikSVN并将Netbeans配置为与SlikSVN一起使用(工具>选项>团队>版本控制> Subversion-将首选客户端设置为JavaHL,将客户端路径设置为SilkSVN Bin文件夹),而不是使用与Netbeans捆绑在一起的SVNKit版本。我相信SVNKit捆绑版本无法正常工作的原因是因为我使用的是NetBeans的独立“ OS Independent Zip”版本。另外,SVN服务器上的authorized_keys文件中的每个密钥都必须位于一行中,且没有换行符。当我删除换行符并确保每个私钥都包含在其自己的行中之后,Web服务器上authorized_keys文件中的换行符引起了一些其他问题,这些问题已解决。如果有人遇到类似问题,我会在此处发布答案。