张三丰_丰丰丰丰丰丰丰 2024-04-30 11:14 采纳率: 100%
浏览 7
已结题

通过 mina-sshd 组件使用 arcfour256 算法连接目标设备时遇到了数据包解码长度异常的问题

我在通过 mina-sshd 组件使用 arcfour256 算法连接目标设备时遇到了数据包解码长度异常的问题

mina-sshd 版本:2.9.2

问题现象

  • 我尝试了 arcfour128 以及另外一些安全高一些的算法通过mina-sshd组件进行连接操作,目前可以正常连接;
  • 使用 arcfour256 算法时直接通过 xshell 客户端去连接目标设备是正常的,但是使用 mina-sshd 组件去连接就会出现异常;
  • 使用 arcfour256 算法时,通过 mina-sshd 组件去连接目标设备的场景下,我切换了目标设备的openssh版本,5.3和7.4都无法正常连接、切换不同网段的目标设备进行连接也无法正常连接;
  • 最后还有一个有意思的现象是在上面失败的场景下,去连接腾讯云服务器上的openssh7.4服务端是可以正常连接的

    异常信息调用栈

    Exception in thread "main" org.apache.sshd.common.SshException: [ssh-connection]: Failed (IllegalArgumentException) to execute: Bad arguments
    at org.apache.sshd.common.future.AbstractSshFuture.lambda$verifyResult$2(AbstractSshFuture.java:146)
    at org.apache.sshd.common.future.AbstractSshFuture.formatExceptionMessage(AbstractSshFuture.java:206)
    at org.apache.sshd.common.future.AbstractSshFuture.verifyResult(AbstractSshFuture.java:145)
    at org.apache.sshd.client.future.DefaultAuthFuture.verify(DefaultAuthFuture.java:56)
    at org.apache.sshd.client.future.DefaultAuthFuture.verify(DefaultAuthFuture.java:35)
    at org.apache.sshd.common.future.VerifiableFuture.verify(VerifiableFuture.java:121)
    at sshTools.SshClientTool.createConnect(SshClientTool.java:213)
    at sshTools.SshClientTool.main(SshClientTool.java:70)
    Caused by: java.lang.IllegalArgumentException: Bad arguments
    at javax.crypto.Cipher.update(Cipher.java:1941)
    at org.apache.sshd.common.cipher.BaseCipher.update(BaseCipher.java:122)
    at org.apache.sshd.common.session.helpers.AbstractSession.decode(AbstractSession.java:1644)
    at org.apache.sshd.common.session.helpers.AbstractSession.messageReceived(AbstractSession.java:505)
    at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.messageReceived(AbstractSessionIoHandler.java:64)
    at org.apache.sshd.common.io.nio2.Nio2Session.handleReadCycleCompletion(Nio2Session.java:409)
    at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:382)
    at org.apache.sshd.common.io.nio2.Nio2Session$1.onCompleted(Nio2Session.java:377)
    at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.lambda$completed$0(Nio2CompletionHandler.java:38)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.sshd.common.io.nio2.Nio2CompletionHandler.completed(Nio2CompletionHandler.java:37)
    at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
    at sun.nio.ch.Invoker$2.run(Invoker.java:218)
    at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:750)
    

我在进行代码调试时发现:

当接收到第八个数据包的时候,该方法内的 updatelen 变成了-8,难道是由于 inCipherSize(加密块的大小)可能不适用于流加密算法??(如 arcfour256,也就是 RC4),因为流加密算法不使用块概念。具体不是很清楚

img

像请教一下mina-sshd有什么配置或者我在目标设备上可以做什么配置来解决吗?

  • 写回答

5条回答 默认 最新

  • 关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 4月30日

悬赏问题

  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。
  • ¥15 onlyoffice编辑完后立即下载,下载的不是最新编辑的文档
  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决