Parallel-ssh

Latest version: v2.14.0

Safety actively analyzes 706267 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 9

2.14.0

++++++

Changes
-------

* Handle disconnects better to allow for file descriptor reuse for both clients.
* Parallel clients no longer forcefully disconnect their clients at de-allocation -
now done by each individual ``SSHClient`` instead when that ``SSHClient`` goes out of scope.
This allows reading of output and anything associated with output, exit codes et al,
to work as long as one of either the client or an associated output object is alive.
* ``SSHClient.disconnect`` is now a no-op and deprecated - handled by object de-allocation.
* ``SSHClient.eagain`` is now a public function - wrapper for polling socket and calling a given socket using function.
* ``SSHClient.eagain_write`` is now a public function - wrapper for polling socket and calling a given socket using
write function.
* ``SSHClient``, ``TunnelServer`` and ``LocalForwarder`` now use their own gevent pools for greenlets spawned so they
are cleaned up correctly at shutdown.
* ``SSHClient.execute`` is now deprecated in favour of ``SSHClient.run_command``.

Fixes
------

* Forwarder threads used for proxies would not exit gracefully at interpreter shutdown, sometimes causing segfaults.
* Client, both parallel and single, going out of scope would cause reading output from existing output objects
to break.
* Explicitly calling ``SSHClient.disconnect`` would sometimes cause segfaults at interpreter shutdown.
* Keepalives being configured on native client would keep client in scope forever.

2.13.0

+++++++

Changes
-------

* Minimum version updates for ``ssh2-python`` and `ssh-python``.
* Added support for Python 3.12+, removed support for Python <3.8.
* Package tests under top level ``tests`` directory are now cross platform and may be run by vendors.
Project CI specific ntegration tests moved into their own space.


Fixes
------

* Calling ``HostOutput.stdin.flush`` with a ``pssh.clients.ssh`` client would raise exception.

2.12.0

+++++++

Changes
--------

* Added ``alias`` optional parameter to ``SSHClient`` and ``HostConfig`` for passing through from parallel clients.
Used to set an SSH host name alias, for cases where the real host name is the same and there is a need to
differentiate output from otherwise identical host names - 355. Thank you simonfelding.
* Parallel clients now read a common private key only once, reusing it for all clients it applies to,
to improve performance.
* Performance improvements for all clients when reading output.
* Output reading for all clients has been changed to be less prone to race conditions.

Fixes
------

* Calling ``ParallelSSHClient.join`` without ever running ``run_command`` would raise exception. Is now a no-op.

2.11.1

+++++++

Changes
--------

* Updated default log formatter set by `pssh.utils` enable logger functions.

Fixes
------

* Using native clients under `pssh.clients.native` with very short lived commands would sometimes cause unexpected
stalls/delays in reading output from completed commands when a client ``timeout`` setting was used - 344.

2.11.0

+++++++

Changes
--------

* Updated minimum required versions for `ssh2-python` and `ssh-python`.

2.10.0

++++++

Changes
-------

* All client configuration can now be provided via ``HostConfig`` on parallel clients.
* ``proxy_pkey`` can now also be provided as bytes for proxy authentication from in-memory private key data - 338
* Removed deprecated since ``2.0.0`` dictionary support for ``host_config`` entries.

Page 1 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.