由于sockettimeoutexception,如何增加apache sshd的scpclient的channeloutputstream的等待超时?

wpx232ag  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(513)

使用apache sshd scp客户端将文件从本地复制到远程时,出现以下错误:

flush(ChannelOutputStream[ChannelExec[id=0, recipient=0]-ClientSessionImpl[uxxxxxx@Hostname.domain.com/192.163.23.68:45018]] SSH_MSG_CHANNEL_DATA) failed (SocketTimeoutException) to wait for space of len=24576: waitForCondition(Window[client/remote](ChannelExec[id=0, recipient=0]-ClientSessionImpl[uxxxxxx@Hostname.domain.com/192.163.23.68:45018])) timeout exceeded: 30000

下面是我如何设置sshserver和scpclient的:
如何使用apache sshd scpclient上传/下载文件
此SCPC客户端正在linux主机上运行,并且有多个SSHServer正在linux和windows主机上运行。
我使用这个scpclient将文件复制到linux和win ssh服务器。我正在做的是创建大约20多个akka演员,负责复制到各自的远程主机上,这些主机是win和linux的组合。因此,在复制时,这确实会给本地主机带来一些压力。
但是,只有在复制到运行sshserver的某些win服务器时,我才会出现此错误。
我确实注意到复制速度很慢,但我不知道究竟是什么问题,我如何才能解决它?
我有一个模糊的想法,它与这个参数有关:
https://github.com/apache/mina-sshd/blob/sshd-2.5.0/sshd-core/src/main/java/org/apache/sshd/common/channel/channeloutputstream.java#l43
但是我不确定在创建客户机时在哪里可以配置它?
任何提示都会有帮助。

eufgjt7s

eufgjt7s1#

我们可以使用propertyresolverutils来更新任何配置的属性

PropertyResolverUtils.updateProperty(sshClient, ChannelOutputStream.WAIT_FOR_SPACE_TIMEOUT, 120000);

相关问题