我正在尝试使用j2ssh将文件从我的应用程序SCP到服务器。远程服务器正在运行TECTIA。
在命令行(部署我的应用程序的Solaris机器)中,scp使用我们交换的密钥对工作得很好。
在我的应用程序中,j2ssh不能建立连接,抛出异常:
Caused by: com.sshtools.j2ssh.transport.TransportProtocolException: The connection did not complete来自j2ssh的调试日志显示以下内容:
com.sshtools.j2ssh.transport.TransportProtocolCommon.beginKeyExchange(Unknown Source) | Starting key exchange
com.sshtools.j2ssh.transport.TransportProtocolCommon.determineAlgorithm(Unknown Source) | Determine Algorithm
com.sshtools.j2ssh.transport.TransportProtocolCommon.determineAlgorithm(Unknown Source) | Client Algorithms: [diffie-hellman-group1-sha1]
com.sshtools.j2ssh.transport.TransportProtocolCommon.determineAlgorithm(Unknown Source) | Server Algorithms: [diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1]
com.sshtools.j2ssh.transport.TransportProtocolCommon.sendMessage(Unknown Source) | Sending SSH_MSG_DISCONNECT
com.sshtools.j2ssh.transport.TransportProtocolCommon.run(Unknown Source) | The Transport Protocol has been stopped从上面我可以看到,我的应用程序和服务器之间的密钥交换没有匹配算法(调试实际上显示,当服务器和客户端算法都不匹配时,这个问题的根源是AlgorithmNotAgreedException,所以我知道这是根本原因)。
我如何向j2ssh添加新的算法,以便它能够找到匹配?j2ssh文档相当稀疏。
发布于 2012-04-26 05:24:59
在j2ssh发行版中应该有一个sshtools.xml文件。在该文件中,您可以添加要映射的其他ExtensionAlgorithm条目
diffie-hellman-group14-sha1 to
com.maverick.ssh.components.jce.DiffieHellmanGroup14Sha1或转到
com.maverick.ssh.components.standalone.DiffieHellmanGroup14Sha1发布于 2012-04-26 04:45:23
我对你的问题没有确切的答案,但我有一个建议。看一下jsch库。我在几个应用程序中成功地使用了jsch。
https://stackoverflow.com/questions/10323092
复制相似问题