From 8fd3233b31210fa0f2adee48a675dfaf9dc04eba1f2f65bba68b75970e2bdfc0 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sat, 12 Jul 2025 17:35:24 +0000 Subject: [PATCH] =?UTF-8?q?-=20update=20to=202.21.0:=20=20=20*=20Added=20s?= =?UTF-8?q?parse=20file=20support=20for=20SFTP,=20allowing=20file=20copyin?= =?UTF-8?q?g=20=20=20=20=20which=20automatically=20skips=20over=20any=20"h?= =?UTF-8?q?oles"=20in=20a=20source=20file,=20=20=20=20=20transferring=20on?= =?UTF-8?q?ly=20the=20data=20ranges=20which=20are=20actually=20present.=20?= =?UTF-8?q?=20=20*=20Added=20support=20for=20applications=20to=20request?= =?UTF-8?q?=20that=20session,=20=20=20=20=20connection,=20or=20TUN/TAP=20r?= =?UTF-8?q?equests=20arriving=20on=20an=20=20=20=20=20SSHServerConnection?= =?UTF-8?q?=20be=20forwarded=20out=20some=20other=20established=20=20=20?= =?UTF-8?q?=20=20SSHClientConnection.=20Callback=20methods=20on=20SSHServe?= =?UTF-8?q?r=20which=20=20=20=20=20decide=20how=20to=20handle=20these=20re?= =?UTF-8?q?quests=20can=20now=20return=20an=20=20=20=20=20SSHClientConnect?= =?UTF-8?q?ion=20to=20set=20up=20this=20tunneling,=20instead=20of=20=20=20?= =?UTF-8?q?=20=20having=20to=20accept=20the=20request=20and=20implement=20?= =?UTF-8?q?their=20own=20=20=20=20=20forwarding=20logic.=20=20=20*=20Furth?= =?UTF-8?q?er=20hardened=20the=20SSH=20key=20exchange=20process=20to=20mak?= =?UTF-8?q?e=20=20=20=20=20AsyncSSH=20more=20strict=20when=20accepting=20m?= =?UTF-8?q?essages=20during=20key=20=20=20=20=20exchange.=20Thanks=20go=20?= =?UTF-8?q?to=20Fabian=20B=C3=A4umer=20and=20Marcus=20Brinkmann=20for=20?= =?UTF-8?q?=20=20=20=20identifying=20potential=20issues=20here.=20=20=20*?= =?UTF-8?q?=20Added=20support=20for=20the=20auth=5Fcompleted=20callback=20?= =?UTF-8?q?in=20SSHServer=20to=20=20=20=20=20be=20either=20a=20callable=20?= =?UTF-8?q?or=20a=20coroutine,=20allowing=20async=20=20=20=20=20operations?= =?UTF-8?q?=20to=20be=20performed=20when=20user=20authentication=20complet?= =?UTF-8?q?es=20=20=20=20=20successfully,=20prior=20to=20accepting=20sessi?= =?UTF-8?q?on=20requests.=20=20=20*=20Added=20support=20for=20the=20sftp?= =?UTF-8?q?=5Ffactory=20config=20argument=20be=20either=20=20=20=20=20a=20?= =?UTF-8?q?callable=20or=20a=20coroutine,=20allowing=20async=20operations?= =?UTF-8?q?=20to=20be=20=20=20=20=20performed=20when=20starting=20up=20a?= =?UTF-8?q?=20new=20SFTP=20server=20session.=20=20=20*=20Fixed=20a=20bug?= =?UTF-8?q?=20where=20the=20exit()=20method=20of=20SFTPServer=20didn't=20?= =?UTF-8?q?=20=20=20=20handle=20being=20declared=20as=20a=20coroutine.=20T?= =?UTF-8?q?hanks=20go=20to=20C.=20R.=20=20=20=20=20Oldham=20for=20reportin?= =?UTF-8?q?g=20this=20issue.=20=20=20*=20Improved=20handling=20of=20except?= =?UTF-8?q?ions=20in=20connection=5Flost()=20=20=20=20=20callbacks.=20Exce?= =?UTF-8?q?ptions=20in=20connection=5Flost()=20will=20now=20be=20=20=20=20?= =?UTF-8?q?=20reported=20in=20the=20debug=20log,=20but=20other=20cleanup?= =?UTF-8?q?=20code=20in=20AsyncSSH=20=20=20=20=20will=20continue,=20ignori?= =?UTF-8?q?ng=20those=20exceptions.=20Thanks=20go=20to=20Danil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-asyncssh?expand=0&rev=64 --- asyncssh-2.18.0.tar.gz | 3 -- asyncssh-2.21.0.tar.gz | 3 ++ python-asyncssh.changes | 83 +++++++++++++++++++++++++++++++++++++++++ python-asyncssh.spec | 2 +- 4 files changed, 87 insertions(+), 4 deletions(-) delete mode 100644 asyncssh-2.18.0.tar.gz create mode 100644 asyncssh-2.21.0.tar.gz diff --git a/asyncssh-2.18.0.tar.gz b/asyncssh-2.18.0.tar.gz deleted file mode 100644 index f38bbbf..0000000 --- a/asyncssh-2.18.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1a322161c01f60b9719dc8f39f80db71e61f3f5e04abbc3420ce503126d87123 -size 526304 diff --git a/asyncssh-2.21.0.tar.gz b/asyncssh-2.21.0.tar.gz new file mode 100644 index 0000000..a964d82 --- /dev/null +++ b/asyncssh-2.21.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:450fe13bb8d86a8f4e7d7b5fafce7791181ca3e7c92e15bbc45dfb25866e48b3 +size 539740 diff --git a/python-asyncssh.changes b/python-asyncssh.changes index 7d0d7fd..d5816f2 100644 --- a/python-asyncssh.changes +++ b/python-asyncssh.changes @@ -1,3 +1,86 @@ +------------------------------------------------------------------- +Sat Jul 12 17:35:09 UTC 2025 - Dirk Müller + +- 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 + Slinchuk for reporting this issue. + * Added support for specifying an explicit path when + configuring agent forwarding. Thanks go to Aleksandr Ilin for + pointing out that this options supports more than just a + boolean value. + * Added support for environment variable expansion in SSH + config, for options which support percent expansion. + * Added a new begin_auth callback in SSHClient, reporting the + username being sent during SSH client authentication. This + can be useful when the user is conditionally set via an SSH + config file. + * Improved strict-kex interoperability during re-keying. Thanks + go to GitHub user emeryalden for reporting this issue and + helping to track down the source of the problem. + * Updated SFTP max_requests default to reduce memory usage when + using large block sizes. + * Updated testing to add Python 3.13 and drop Python 3.7, + avoiding deprecation warnings from the cryptography package. + * Fixed unit test issues under Windows, allowing unit tests to + run on Windows on all supported versions of Python. + * Fixed a couple of issues with Python 3.14. Thanks go to Georg + Sauthoff for initially reporting this. + * Added support for WebAuthN authentication with U2F security + keys, allowing non-admin Windows users to use these keys for + authentication. Previously, authentication with U2F keys + worked on Windows, but only for admin users. + * Added support for hostname canonicalization, compatible with + the configuration parameters used in OpenSSH, as well as + support for the "canonical" and "final" match keywords and + negation support for match. Thanks go to GitHub user + commonism who suggested this and provided a proposed + implementation for negation. + * Added client and server support for SFTP copy-data extension + and a new SFTP remote_copy() function which allows data to be + moved between two remote files without downloading and re- + uploading the data. Thanks go to Ali Khosravi for suggesting + this addition. + * Moved project metadata from setup.py to pyproject.toml. + Thanks go to Marc Mueller for contributing this. + * Updated SSH connection to keep strong references to + outstanding tasks, to avoid potential issues with the garbage + collector while the connection is active. Thanks go to GitHub + user Birnendampf for pointing out this potential issue and + suggesting a simple fix. + * Fixed some issues with block_size argument in SFTP copy + functions. Thanks go to Krzysztof Kotlenga for finding and + reporting these issues. + * Fixed an import error when fido2 package wasn't available. + Thanks go to GitHub user commonism for reporting this issue. + ------------------------------------------------------------------- Fri Jun 13 05:35:08 UTC 2025 - Steve Kowalik diff --git a/python-asyncssh.spec b/python-asyncssh.spec index 373171a..22e4d54 100644 --- a/python-asyncssh.spec +++ b/python-asyncssh.spec @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-asyncssh -Version: 2.18.0 +Version: 2.21.0 Release: 0 Summary: Asynchronous SSHv2 client and server library License: EPL-2.0 OR GPL-2.0-or-later