-
Notifications
You must be signed in to change notification settings - Fork 92
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
piping data over wolfsshd stalls/fails #772
Comments
Thanks for the detailed report. As a note I was able to reproduce the reported behavior. |
@Forza-tng a fix for this report is under review here (#776). |
Thanks. With the latest commit, it now works :) Initial tests show about 50% throughput compared to opensshd.
Maybe a difference in ciphers or block sizes is the cause? Using fixed ciphers show further differences.
Note, these are very simple quick tests. |
There is some performance difference that is being looked into at the moment. %50 is a lot though, some things to check is that wolfssh + wolfssl was built with the same types of assembly optimizations as openssh + openssl. This would be things like:
armasm for ARM devices and intelasm for Intel devices. Difference in use of AES-NI or ARMv8 crypto extensions will lead to some performance difference. Even with the crypto in wolfCrypt being faster than OpenSSL with these optimizations though the current wolfSSH will be slower (which is being investigated heavily currently). |
Compiling wolfssl with aesni and asm made a big difference. For aes256-gcm both wolfsshd and opensshd reach approx 1.3GiB/s. The higher numbers compared to before is because the system was under load from other things. Today I was testing with an unloaded system. |
Hi,
I am having difficulties piping data from a openssh client to a wolfsshd host.
For example, the following command never finishes.
ctrl-c aborts the connection. The test file is 48894 bytes, but 8188 bytes only makes it to the
xxxxxxx
file. The same happens usingmbuffer -i file ...
It seems to always be
8188
bytes, even if I cat a large ISO or some text files. However when doingcat /dev/random
or/dev/urandom
, the command finishes but no remote file is created at all.I built wolfssh from a git checkout today using
./configure --prefix=/opt/wolfssh --enable-all --with-wolfssl=/opt/wolfssl
I use the following
sshd_config
I start wolfsshd using
/opt/wolfssh/bin/wolfsshd -d -E /tmp/wolfsshd.log -f /opt/wolfssh/etc/sshd_config
Logfile contains
The source test file was created using the following, so I can determine how much was processed.
An strace of wolfsshd reveals it receives and sends 1859 rows and then stops with
<unfinished ...>
reading from/dev/pts/9<char 136:9
Using a 1024 byte file, all rows transfer, but worlfsshd still end in unfinished state.
I ran the sending
cat
andssh
through strace too and see that both do finish sending data and close the pipe, but somehow wolfsshd does not recognize this.It seems as there are two problems;
I'm running in Gentoo Linux, x86_64, gcc-14.2.1. I did try this in September last year, with the same issue.
The text was updated successfully, but these errors were encountered: