Hello,
we have been experiencing some major behavior changes compared to previous
versions (0.9.2 still worked fine) and I would really appreciate some help
because I have tried debugging these problems without much success.
1)
We have a test where an SSH key is used for authentication. Some time ago it
stopped working because "ssh-dss" key type was no longer accepted by default
(at least that was my conclusion) so a call
ssh_options_set(session, SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES,
"ssh-ed25519,ecdsa-sha2-nistp256,"
"ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa,rsa-sha2-512,rsa-sha2-256,ssh-dss");
was added (to allow all publickey types) and the problem was fixed. After
updating to libssh 0.9.3, however, this problem appeared again. After some
trial-and-error debugging I have learned that if I set the aforementioned
options before ssh_connect(), they get reset and the problem disappeared when I
put this call after ssh_connect(). Was this, by any chance, an intentional
change?
2)
After fixing this issue, another one manifested, namely a call to
ssh_channel_poll_timeout() returns 0 (timeout) even though there should be some
data available. Even after some in-depth debugging I failed to learn the cause
of this and have only checked that poll() system call correctly returned that
there are data available on the underlying file descriptor.
Now, we are using OpenSUSE build service to build packages on various
distributions and these 2 problems manifest on only some of them depending on
libssh version but not only that:
Debian 10: success
Debian Unstable: only problem 2)
Fedora 30: success
Fedora 31: problem 1)
Fedora Rawhide: problem 1)
OpenSUSE Leap 15.1: success
OpenSUSE Tumbleweed: only problem 2)
Ubuntu 18.04: success
Ubuntu 19.04: success
Ubuntu 19.10: success
Finally, I just want to add that I started looking into these problems after we
got a report that there are some problems on CentOS 8 and have debugged it in a
virtual machine. So, CentOS 8 has both problems 1) and 2) after manually
updating libssh to 0.9.3. It is also interesting to note that I am using
OpenSUSE Tumbleweed myself with libssh 0.9.3 and it works fine except some
memory leaks from ssh_connect() and ssh_handle_key_exchange(). I can provide
any other additional information (all our code is open-source) that may be of
some help. Thank you for any assistance.
Regards,
Michal