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

Reply via email to