【问题标题】:SVNKit using ssh throws IOExceptionSVNKit 使用 ssh 抛出 IOException
【发布时间】:2021-06-08 05:30:56
【问题描述】:

我安装了一个新的 subversion 存储库,但我无法连接到该存储库。

在旧存储库中,它按预期工作。新存储库引发异常:

org.eclipse.team.svn.core.connector.SVNConnectorException: svn: E210002: There was a problem while connecting to xn--x7h.example.com:22
    at org.polarion.team.svn.connector.svnkit.SVNKitService.handleClientException(SVNKitService.java:59)
    at org.polarion.team.svn.connector.svnkit.SVNKitConnector.listEntries(SVNKitConnector.java:1758)
    at org.eclipse.team.svn.core.extension.factory.ThreadNameModifier.listEntries(ThreadNameModifier.java:324)
    at org.eclipse.team.svn.core.utility.SVNUtility.list(SVNUtility.java:440)
    at org.eclipse.team.svn.core.svnstorage.SVNRepositoryContainer.getChildren(SVNRepositoryContainer.java:79)
    at org.eclipse.team.svn.core.operation.remote.GetRemoteFolderChildrenOperation.runImpl(GetRemoteFolderChildrenOperation.java:76)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:82)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
    at org.eclipse.team.svn.core.operation.CompositeOperation.runImpl(CompositeOperation.java:99)
    at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:82)
    at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:40)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
    at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90)
    at org.eclipse.team.svn.ui.utility.DefaultCancellableOperationWrapper.run(DefaultCancellableOperationWrapper.java:55)
    at org.eclipse.team.svn.ui.utility.ScheduledOperationWrapper.run(ScheduledOperationWrapper.java:37)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.apache.subversion.javahl.ClientException: svn: E210002: There was a problem while connecting to xn--x7h.example.com:22
    at org.apache.subversion.javahl.ClientException.fromException(ClientException.java:117)
    at org.tmatesoft.svn.core.javahl17.SVNClientImpl.getClientException(SVNClientImpl.java:1539)
    at org.tmatesoft.svn.core.javahl17.SVNClientImpl.list(SVNClientImpl.java:189)
    at org.polarion.team.svn.connector.svnkit.SVNKitConnector.listEntries(SVNKitConnector.java:1745)
    ... 14 more
Caused by: org.tmatesoft.svn.core.SVNException: svn: E210002: There was a problem while connecting to xn--x7h.example.com:22
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:70)
    at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:57)
    at org.tmatesoft.svn.core.internal.io.svn.SVNSSHConnector.open(SVNSSHConnector.java:145)
    at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:77)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:1273)
    at org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:172)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:119)
    at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:195)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:46)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteList.run(SvnRemoteList.java:36)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteList.run(SvnRemoteList.java:1)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
    at org.tmatesoft.svn.core.javahl17.SVNClientImpl.list(SVNClientImpl.java:187)
    ... 15 more
Caused by: java.io.IOException: There was a problem while connecting to xn--x7h.example.com:22
    at com.trilead.ssh2.Connection.connect(Connection.java:817)
    at org.tmatesoft.svn.core.internal.io.svn.ssh.SshHost.openConnection(SshHost.java:225)
    at org.tmatesoft.svn.core.internal.io.svn.ssh.SshHost.openSession(SshHost.java:153)
    at org.tmatesoft.svn.core.internal.io.svn.ssh.SshSessionPool.openSession(SshSessionPool.java:85)
    at org.tmatesoft.svn.core.internal.io.svn.SVNSSHConnector.open(SVNSSHConnector.java:122)
    ... 27 more
Caused by: java.io.IOException: Key exchange was not finished, connection is closed.
    at com.trilead.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:92)
    at com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:231)
    at com.trilead.ssh2.Connection.connect(Connection.java:769)
    ... 31 more
Caused by: java.io.IOException: Cannot negotiate, proposals do not match.
    at com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:413)
    at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:765)
    at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:480)
    at java.base/java.lang.Thread.run(Thread.java:834)

有什么想法吗?

【问题讨论】:

  • 您的域包含 unicode 字符? xn--x7h,不能保证这是问题所在,但我会非常小心地做这些事情。
  • @luk2302 否,该域不包含 Unicode 字符。即使来自 IAB 的考虑(我猜你的意思是)属于 unicode 字符,这些字符与字母数字字符容易混淆。 ⚙ 与字母数字字符不相似。由于堆栈跟踪显示 KexManager 行(我猜是 Key-Exchange=kex)告诉我连接已经完成,不再属于 DN。

标签: java eclipse subversive svnkit


【解决方案1】:

我检查了服务器端发生了什么。所以我打电话给tail -f /var/log/auth.log,发现一条消息说客户端和服务器无法就匹配的kex算法达成一致。

最后我的解决方案是启用这条线

KexAlgorithms +diffie-hellman-group1-sha1

到对应的

/etc/ssh/sshd_config

归档并重新启动 sshd-server。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    相关资源
    最近更新 更多