parallel-ssh
Asynchronous parallel SSH library
Decision gist · record as of 2026-08-14
Yes, if you need to manage SSH operations across multiple hosts at scale. The native C backend and gevent integration make it substantially faster and lighter than pure-Python alternatives. LGPL-2.1-only licensing is permissive for internal use but requires attention if you distribute derivative code. No known vulnerabilities, active maintenance, and stable API make it production-ready for infrastructure automation and multi-host operations.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires SSH connectivity to target hosts and compatible SSH server configuration; gevent event loop integration is implicit.
- Low friction installation via wheel distribution.
- Actively maintained with recent commits and stable production status.
License · maintenance · safety
LGPL-2.1-only (copyleft) — Licensed under LGPL-2.1-only (copyleft). Derivative works and modifications must be released under the same license; linking in proprietary applications requires careful review of your distribution model.
last release 2025-10-14 (304 days) · last repo commit 2026-08-05 · 1,281 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 206,020 downloads/mo, #9,579 on PyPI
Alternatives
Verify before relying
pip install parallel-ssh
from parallel_ssh.clients import ParallelSSHClient
hosts = ['host1', 'host2']
client = ParallelSSHClient(hosts)
output = client.run_command('uname')
for host_output in output:
for line in host_output.stdout:
print(line)- Whether ssh2-python or ssh-python is automatically selected based on environment or requires explicit configuration.
- Specific performance characteristics (throughput, latency) compared to alternatives under real-world load.
- Whether SFTP/SCP operations work with all SSH server implementations or have known compatibility gaps.
What it is and what it does
parallel-ssh is an asynchronous SSH client library that wraps native C SSH implementations (libssh2 or libssh) to execute commands across many remote hosts concurrently. It uses gevent for event-loop coordination and provides both a ParallelSSHClient for multi-host operations and a single-host SSHClient with a similar API. The library is designed to scale from dozens to hundreds of thousands of concurrent connections while keeping CPU and memory overhead on the client low.
The package supports command execution, file transfer via SFTP and SCP, and output streaming. It handles asynchronous result gathering through generators and provides a join() method to wait for all operations to complete. Exit codes and output become available after iteration or join, and the library includes built-in host logging utilities. The native C backend means it trades Python-only portability for significant performance gains over pure-Python SSH libraries.
Use it for
- Deploy or update software across a fleet of servers by running the same command in parallel on all hosts.
- Gather system information (logs, metrics, configuration) from many machines simultaneously without blocking.
- Copy files to or from multiple remote hosts in parallel using SFTP or SCP.
- Automate infrastructure provisioning or configuration management tasks that require SSH access to many nodes.
- Monitor or troubleshoot distributed systems by executing diagnostic commands across all servers at once.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to manage SSH operations across multiple hosts at scale.
The native C backend and gevent integration make it substantially faster and lighter than pure-Python alternatives. LGPL-2.1-only licensing is permissive for internal use but requires attention if you distribute derivative code. No known vulnerabilities, active maintenance, and stable API make it production-ready for infrastructure automation and multi-host operations.
Install
parallel-ssh on PyPI
Before you install
Low friction installation via wheel distribution. Actively maintained with recent commits and stable production status. Depends on gevent and native SSH libraries (ssh2-python or ssh-python), which are themselves mature C-based projects.
Requires SSH connectivity to target hosts and compatible SSH server configuration; gevent event loop integration is implicit.
License in practice
Licensed under LGPL-2.1-only (copyleft). Derivative works and modifications must be released under the same license; linking in proprietary applications requires careful review of your distribution model.
Quickstart
pip install parallel-ssh
from parallel_ssh.clients import ParallelSSHClient
hosts = ['host1', 'host2']
client = ParallelSSHClient(hosts)
output = client.run_command('uname')
for host_output in output:
for line in host_output.stdout:
print(line)
Verify before relying
- Whether ssh2-python or ssh-python is automatically selected based on environment or requires explicit configuration.
- Specific performance characteristics (throughput, latency) compared to alternatives under real-world load.
- Whether SFTP/SCP operations work with all SSH server implementations or have known compatibility gaps.
Package facts
| License | LGPL-2.1-only copyleft |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesgeventssh2-pythonssh-python |
| Maintenance | Actively maintained 304 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 206,020 / month, #9,579 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: OS IndependentOperating System :: POSIXOperating System :: POSIX :: BSDOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: System :: NetworkingTopic :: System :: Shells |
Evidence: parallel_ssh-2.16.0.post1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “parallel ssh execution”
- parallel-sshAsynchronous SSH client for running commands on hundreds or thousands…
- ssh-pythonPython bindings to the libssh C library for SSH client operations,…
- jumpsshJumpSSH runs commands on remote servers through SSH gateways,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also asyncssh · ssh-python · pyinfra · sshconf · ssh2-python · sshfs · rclone-python · grequests · jumpssh · paramiko