在 ssh 上使用 svn 时,SCM 传感器失败并显示 E170001
SCM Sensor fails with E170001 when using svn over ssh
自从声纳切换到使用 SVNKit 后,我无法使用 svn+ssh
对工作副本进行 blame 分析。它失败了:
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project example: Error when executing blame for file src/main/java/com/acme/Foo.java: svn: E170001: Authentication required for 'svn@svn+ssh://svn.acme.com'
svn
命令在从命令行调用时正常工作,也连接到 ssh svn@svn.acme.com
成功。
我在 Eclipse 中将 SVNKit 与此存储库一起使用,它也可以正常工作(尽管我必须告诉它在哪里寻找私钥)。
当我尝试调试声纳 运行ner 执行时,我看到私钥根本没有设置:
myPreviousAuthentication SVNSSHAuthentication (id=392)
myAgentProxy null
myIsPartial false
myIsStorageAllowed false
myKind "svn.ssh" (id=387)
myPassphrase null
myPassword (id=608)
myPortNumber -1
myPrivateKeyFile null
myPrivateKeyValue null
myURL SVNURL (id=345)
myUserName "jbochenski" (id=610)
myPreviousErrorMessage SVNErrorMessage (id=388)
dontShowErrorCode false
myChildErrorMessage null
myErrorCode SVNErrorCode (id=614)
myMessage "Credentials rejected by SSH server." (id=613)
myObjects Object[0] (id=616)
myThrowable null
myType 0
URL、用户名和密码都是正确的,但是如您所见myPrivateKeyFile
是null
。
我试过按照SVNKit documentation用MAVEN_OPTS='-Dsvnkit.ssh2.key=/home/acme/.ssh/id_rsa'
设置私钥路径,但没有效果。
如果 运行 这在另一个工作副本上通过 https
签出,则分析工作正常,进一步确认这是 ssh 身份验证的问题。
这确实是一个缺失的功能。我创建了以下票证:https://jira.sonarsource.com/browse/SONARSCSVN-9
您介意测试一下这个更新版本的插件吗:
https://github.com/SonarSource/sonar-scm-svn/releases/download/1.3-rc1/sonar-scm-svn-plugin-1.3-SNAPSHOT.jar
您应该可以传递额外的参数(或在 UI 中设置它们):
-Dsonar.svn.privateKeyPath=<path to private key>
-Dsonar.svn.passphrase.secure=<optional passphrase>
直接在pull request中报告任何sucess/issue不要污染SO:
https://github.com/SonarSource/sonar-scm-svn/pull/4
自从声纳切换到使用 SVNKit 后,我无法使用 svn+ssh
对工作副本进行 blame 分析。它失败了:
[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.5:sonar (default-cli) on project example: Error when executing blame for file src/main/java/com/acme/Foo.java: svn: E170001: Authentication required for 'svn@svn+ssh://svn.acme.com'
svn
命令在从命令行调用时正常工作,也连接到 ssh svn@svn.acme.com
成功。
我在 Eclipse 中将 SVNKit 与此存储库一起使用,它也可以正常工作(尽管我必须告诉它在哪里寻找私钥)。
当我尝试调试声纳 运行ner 执行时,我看到私钥根本没有设置:
myPreviousAuthentication SVNSSHAuthentication (id=392)
myAgentProxy null
myIsPartial false
myIsStorageAllowed false
myKind "svn.ssh" (id=387)
myPassphrase null
myPassword (id=608)
myPortNumber -1
myPrivateKeyFile null
myPrivateKeyValue null
myURL SVNURL (id=345)
myUserName "jbochenski" (id=610)
myPreviousErrorMessage SVNErrorMessage (id=388)
dontShowErrorCode false
myChildErrorMessage null
myErrorCode SVNErrorCode (id=614)
myMessage "Credentials rejected by SSH server." (id=613)
myObjects Object[0] (id=616)
myThrowable null
myType 0
URL、用户名和密码都是正确的,但是如您所见myPrivateKeyFile
是null
。
我试过按照SVNKit documentation用MAVEN_OPTS='-Dsvnkit.ssh2.key=/home/acme/.ssh/id_rsa'
设置私钥路径,但没有效果。
如果 运行 这在另一个工作副本上通过 https
签出,则分析工作正常,进一步确认这是 ssh 身份验证的问题。
这确实是一个缺失的功能。我创建了以下票证:https://jira.sonarsource.com/browse/SONARSCSVN-9
您介意测试一下这个更新版本的插件吗: https://github.com/SonarSource/sonar-scm-svn/releases/download/1.3-rc1/sonar-scm-svn-plugin-1.3-SNAPSHOT.jar
您应该可以传递额外的参数(或在 UI 中设置它们):
-Dsonar.svn.privateKeyPath=<path to private key>
-Dsonar.svn.passphrase.secure=<optional passphrase>
直接在pull request中报告任何sucess/issue不要污染SO: https://github.com/SonarSource/sonar-scm-svn/pull/4