Oliver Stöneberg created SSHD-614: ------------------------------------- Summary: SCP upload fails with dropbear server (aka server with paket size limitation) Key: SSHD-614 URL: https://issues.apache.org/jira/browse/SSHD-614 Project: MINA SSHD Issue Type: Bug Reporter: Oliver Stöneberg Attachments: dropbear_not_working.log, openssh_working.log
When trying to upload a file via SCP to a server running dropbear I get the following error: java.io.EOFException: readAck - EOF before ACK - at org.apache.sshd.common.scp.ScpHelper.readAck() in ScpHelper.java:703. at org.apache.sshd.common.scp.ScpHelper.sendStream() in ScpHelper.java:539. at org.apache.sshd.client.scp.DefaultScpClient.upload() in DefaultScpClient.java:104. at org.apache.sshd.client.scp.AbstractScpClient.upload() in AbstractScpClient.java:201. The main difference between dropbear and OpenSSH I have encountered is that dropbear has a paket size limitation in place by default. That's the reason in the first place why I even need to upload files via SCP since using trying to execute bigger scripts via an exec channel it will fail. I attached logs from the system that fails and another system. The main difference seems to be this: working (OpenSSH): DEBUG [sshd-SshClient[51a8313b]-nio2-thread-9] (AbstractConnectionService.java:236) channelOpenConfirmation(ChannelExec[id=0, recipient=-1]-ClientSessionImpl[ssht...@xxxxxxxxx.xxxx.xxx/XX.XX.XX.XXX:22]) Received SSH_MSG_CHANNEL_OPEN_CONFIRMATION recipient= DEBUG [sshd-SshClient[51a8313b]-nio2-thread-9] (AbstractChannel.java:121) setRecipient(ChannelExec[id=0, recipient=-1]-ClientSessionImpl[ssht...@xxxxxxxxx.xxxx.xxx/XX.XX.XX.XXX:22]) recipient=0 DEBUG [sshd-SshClient[51a8313b]-nio2-thread-9] (Window.java:122) init(ChannelExec[id=0, recipient=0]-ClientSessionImpl[ssht...@xxxxxxxxx.xxxx.xxx/XX.XX.XX.XXX:22]: client remote window) size=0, max.=0, packet=32768 DEBUG [sshd-SshClient[51a8313b]-nio2-thread-9] (ChannelExec.java:47) doOpen(ChannelExec[id=0, recipient=0]-ClientSessionImpl[ssht...@xxxxxxxxx.xxxx.xxx/XX.XX.XX.XXX:22]) send SSH_MSG_CHANNEL_REQUEST exec command=scp -p -t -- /tmp/XXXXX_script.sh not working (dropbear): DEBUG [sshd-SshClient[11389053]-nio2-thread-7] (AbstractConnectionService.java:236) channelOpenConfirmation(ChannelExec[id=0, recipient=-1]-ClientSessionImpl[test@/XX.XX.XX.XXX:44]) Received SSH_MSG_CHANNEL_OPEN_CONFIRMATION recipient= DEBUG [sshd-SshClient[11389053]-nio2-thread-7] (AbstractChannel.java:121) setRecipient(ChannelExec[id=0, recipient=-1]-ClientSessionImpl[test@/XX.XX.XX.XXX:44]) recipient=0 DEBUG [sshd-SshClient[11389053]-nio2-thread-7] (Window.java:122) init(ChannelExec[id=0, recipient=0]-ClientSessionImpl[test@/XX.XX.XX.XXX:44]: client remote window) size=24576, max.=24576, packet=32759 DEBUG [sshd-SshClient[11389053]-nio2-thread-7] (ChannelExec.java:47) doOpen(ChannelExec[id=0, recipient=0]-ClientSessionImpl[test@/XX.XX.XX.XXX:44]) send SSH_MSG_CHANNEL_REQUEST exec command=scp -p -t -- /tmp/XXXXX_script.sh As you can see that's a min/max set for the not working dropbear. There's also two typos in this log message (the additional whitespace at "client local" and the period at "max": DEBUG [forceDeviceActionAsync] (Window.java:122) init(ChannelExec[id=0, recipient=-1]-ClientSessionImpl[test@/10.48.43.214:44]: client local window) size=2097152, max.=2097152, packet=32768 I am using the latest version of master. -- This message was sent by Atlassian JIRA (v6.3.4#6332)