- update to 2.21.0:
* Added sparse file support for SFTP, allowing file copying
which automatically skips over any "holes" in a source file,
transferring only the data ranges which are actually present.
* Added support for applications to request that session,
connection, or TUN/TAP requests arriving on an
SSHServerConnection be forwarded out some other established
SSHClientConnection. Callback methods on SSHServer which
decide how to handle these requests can now return an
SSHClientConnection to set up this tunneling, instead of
having to accept the request and implement their own
forwarding logic.
* Further hardened the SSH key exchange process to make
AsyncSSH more strict when accepting messages during key
exchange. Thanks go to Fabian Bäumer and Marcus Brinkmann for
identifying potential issues here.
* Added support for the auth_completed callback in SSHServer to
be either a callable or a coroutine, allowing async
operations to be performed when user authentication completes
successfully, prior to accepting session requests.
* Added support for the sftp_factory config argument be either
a callable or a coroutine, allowing async operations to be
performed when starting up a new SFTP server session.
* Fixed a bug where the exit() method of SFTPServer didn't
handle being declared as a coroutine. Thanks go to C. R.
Oldham for reporting this issue.
* Improved handling of exceptions in connection_lost()
callbacks. Exceptions in connection_lost() will now be
reported in the debug log, but other cleanup code in AsyncSSH
will continue, ignoring those exceptions. Thanks go to Danil
OBS-URL: https://build.opensuse.org/request/show/1292445
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-asyncssh?expand=0&rev=31
* Added sparse file support for SFTP, allowing file copying
which automatically skips over any "holes" in a source file,
transferring only the data ranges which are actually present.
* Added support for applications to request that session,
connection, or TUN/TAP requests arriving on an
SSHServerConnection be forwarded out some other established
SSHClientConnection. Callback methods on SSHServer which
decide how to handle these requests can now return an
SSHClientConnection to set up this tunneling, instead of
having to accept the request and implement their own
forwarding logic.
* Further hardened the SSH key exchange process to make
AsyncSSH more strict when accepting messages during key
exchange. Thanks go to Fabian Bäumer and Marcus Brinkmann for
identifying potential issues here.
* Added support for the auth_completed callback in SSHServer to
be either a callable or a coroutine, allowing async
operations to be performed when user authentication completes
successfully, prior to accepting session requests.
* Added support for the sftp_factory config argument be either
a callable or a coroutine, allowing async operations to be
performed when starting up a new SFTP server session.
* Fixed a bug where the exit() method of SFTPServer didn't
handle being declared as a coroutine. Thanks go to C. R.
Oldham for reporting this issue.
* Improved handling of exceptions in connection_lost()
callbacks. Exceptions in connection_lost() will now be
reported in the debug log, but other cleanup code in AsyncSSH
will continue, ignoring those exceptions. Thanks go to Danil
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=64
- Update to 2.18.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.
OBS-URL: https://build.opensuse.org/request/show/1222184
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=60
- update to 2.17.0:
* Add support for specifying a per-connection credential store
for GSSAPI authentication.
* Fixed a regression introduced in AsyncSSH 2.15.0 which could
cause connections to be closed with an uncaught exception when
a session on the connection was closed.
* Added a workaround where getaddrinfo() on some systems may
return duplicate entries, causing bind() to fail when opening
a listener.
* Relaxed padding length check on OpenSSH private keys to
provide better compatibility with keys generated by PuTTYgen.
* Improved documentation on SSHClient and SSHServer classes to
explain when they are created and their relationship to the
SSHClientConnection and SSHServerConnection classes.
* Updated examples to use Python 3.7 and made some minor
improvements.
- update to 2.16.0:
* Added client and server support for the OpenSSH "hostkeys"
extension. When using known_hosts, clients can provide a
handler which will be called with the changes between the
keys currently trusted in the client's known hosts and those
available on the server. On the server side, an application
can choose whether or not to enable the sending of this host
key information.
* Related to the above, AsyncSSH now allows the configuration of
multiple server host keys of the same type when the
send_server_host_keys option is enabled. Only the first key of
each type will be used in the SSH handshake, but the others can
appear in the list of supported host keys for clients to begin
trusting, allowing for smoother key rotation.
OBS-URL: https://build.opensuse.org/request/show/1204142
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=58
- update to 2.15.0:
* Added experimental support for tunneling of TUN/TAP network
interfaces on Linux and macOS, allowing for either automatic
packet forwarding or explicit reading and writing of packets
sent through the tunnel by the application. Both callback and
stream APIs are available.
* Added support for forwarding terminal size and terminal size
changes when stdin on an SSHServerProcess is redirected to a
local TTY.
* Added support for multiple tunnel/ProxyJump hosts. Thanks go
to Adam Martin for suggesting this enhancement and proposing
a solution.
* Added support for OpenSSH lsetstat SFTP extension to set
attributes on symbolic links on platforms which support that
and use it to improve symlink handling in the SFTP get, put,
and copy methods. In addition, a follow_symlinks option has
been added on various SFTPClient methods which get and set
these attributes. Thanks go to GitHub user eyalgolan1337 for
reporting this issue.
* Added support for password and passphrase arguments to be a
callable or awaitable, called when performing authentication
or loading encrypted private keys. Thanks go to GitHub user
goblin for suggesting this enhancement.
* Added support for proper flow control when using
AsyncFileWriter or StreamWriter classes to do SSH process
redirection. Thanks go to Benjy Wiener for reporting this
issue and providing feedback on the fix.
* Added is_closed() method
SSHClientConnection/SSHServerConnection to return whether the
associated network connection is closed or not.
OBS-URL: https://build.opensuse.org/request/show/1192788
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-asyncssh?expand=0&rev=27
* Added experimental support for tunneling of TUN/TAP network
interfaces on Linux and macOS, allowing for either automatic
packet forwarding or explicit reading and writing of packets
sent through the tunnel by the application. Both callback and
stream APIs are available.
* Added support for forwarding terminal size and terminal size
changes when stdin on an SSHServerProcess is redirected to a
local TTY.
* Added support for multiple tunnel/ProxyJump hosts. Thanks go
to Adam Martin for suggesting this enhancement and proposing
a solution.
* Added support for OpenSSH lsetstat SFTP extension to set
attributes on symbolic links on platforms which support that
and use it to improve symlink handling in the SFTP get, put,
and copy methods. In addition, a follow_symlinks option has
been added on various SFTPClient methods which get and set
these attributes. Thanks go to GitHub user eyalgolan1337 for
reporting this issue.
* Added support for password and passphrase arguments to be a
callable or awaitable, called when performing authentication
or loading encrypted private keys. Thanks go to GitHub user
goblin for suggesting this enhancement.
* Added support for proper flow control when using
AsyncFileWriter or StreamWriter classes to do SSH process
redirection. Thanks go to Benjy Wiener for reporting this
issue and providing feedback on the fix.
* Added is_closed() method
SSHClientConnection/SSHServerConnection to return whether the
associated network connection is closed or not.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=56