AsyncSSH 2.18.0 released!

4 views
Skip to first unread message

Ron Frederick

unread,
Oct 26, 2024, 2:09:29 PM10/26/24
to asyncssh...@googlegroups.com, asyncss...@googlegroups.com
AsyncSSH version 2.18.0 is now available on Github and PyPI, with some new features and a large number of bug fixes, including an improved fix for a regression introduced in 2.15.0. Here’s a list of changes since 2.17.0:

* Added support for post-quantum ML-KEM key exchange algorithms,
interoperable with OpenSSH 9.9.

* Added support for the OpenSSH "limits" extension, allowing the
client to query server limits such as the maximum supported read
and write sizes. The client will automatically default to the reported
maximum size on servers that support this extension.

* Added more ways to specify environment variables via the `env` option.
Sequences of either 'key=value' strings or (key, value) tuples are now
supported, in addition to a dict.

* Added support for getting/setting environment variables as byte strings
on platforms which support it. Previously, only Unicode strings were
accepted and they were always encoded on the wire using UTF-8.

* Added support for non-TCP sockets (such as a socketpair) as the `sock`
parameter in connect calls. Thanks go to Christian Wendt for reporting
this problem and proposing a fix.

* Changed compression to be disabled by default to avoid it becoming a
performance bottleneck on high-bandwidth connections. This now also
matches the OpenSSH default.

* Improved speed of parallelized SFTP reads when read-ahead goes beyond
the end of the file. Thanks go to Maximilian Knespel for reporting
this issue and providing performance measurements on the code before
and after the change.

* Improved cancellation handling during SCP transfers.

* Improved support for selecting the currently available security key
when the application lists multiple keys to try. Thanks go to GitHub
user zanda8893 for reporting the issue and helping to work out the
details of the problem.

* Improved handling of reverse DNS failures in host-based authentication.
Thanks go to GitHub user xBiggs for suggesting this change.

* Improved debug logging of byte strings with non-printable characters.

* Switched to using an executor on GSSAPI calls to avoid blocking the
event loop.

* Fixed handling of "UserKnownHostsFile none" in config files. This
previously caused it to use the default known hosts, rather than
disabling known host checking.

* Fixed a runtime warning about not awaiting a coroutine in unit tests.

* Fixed a unit test failure on Windows when calling abort on a transport.

* Fixed a problem where a "MAC verification failed" error was sometimes
sent on connection close.

* Fixed SSHClientProcess code to not raise a runtime exception when
waiting more than once for a process to finish. Thanks go to GitHub
user starflows for reporting this issue.

* Handled an error when attempting to import older verions of pyOpenSSL.
Thanks go to Maximilian Knespel for reporting this issue and testing
the fix.

* Updated simple_server example code to switch from crypt to bcrypt,
since crypt has been removed in Python 3.13. Thanks go to Colin
Watson for providing this update.

Downloads can be found in the usual place:

Home page: http://asyncssh.readthedocs.io
PyPI: https://pypi.python.org/pypi/asyncssh
GitHub: https://github.com/ronf/asyncssh

Please let me know if you have any questions or problems with this new release.
--
Ron Frederick
ro...@timeheart.net



Reply all
Reply to author
Forward
0 new messages