You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.rst
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -226,33 +226,33 @@ There are not many alternatives for SSH libraries in Python. Of the few that do
226
226
227
227
As always, it is best to use a tool that is suited to the task at hand. ``parallel-ssh`` is a library for programmatic and non-interactive use - see `Design And Goals`_. If requirements do not match what it provides then it best not be used. Same applies for the tools described below.
228
228
229
-
`Paramiko<http://paramiko.org>`_
230
-
_____________________________________
229
+
Paramiko
230
+
________
231
231
232
232
The default SSH client library in ``parallel-ssh`` ``1.x.x`` series.
233
233
234
234
Pure Python code, while having native extensions as dependencies, with poor performance and numerous bugs compared to both OpenSSH binaries and the ``libssh2`` based native clients in ``parallel-ssh`` ``1.2.x`` and above. Recent versions have regressed in performance and have `blocker issues <https://github.com/ParallelSSH/parallel-ssh/issues/83>`_.
235
235
236
236
It does not support non-blocking mode, so to make it non-blocking monkey patching must be used which affects all other uses of the Python standard library. However, some functionality like Kerberos (GSS-API) authentication is not provided by other libraries.
237
237
238
-
`asyncssh<https://github.com/ronf/asyncssh>`_
239
-
_________________________________________________
238
+
asyncssh
239
+
________
240
240
241
241
Python 3 only ``asyncio`` framework using client library. License (`EPL`) is not compatible with GPL, BSD or other open source licenses and `combined works cannot be distributed <https://www.eclipse.org/legal/eplfaq.php#USEINANOTHER>`_.
242
242
243
243
Therefore unsuitable for use in many projects, including ``parallel-ssh``.
244
244
245
-
`Fabric<http://www.fabfile.org/>`_
246
-
___________________________________
245
+
Fabric
246
+
______
247
247
248
248
Port of Capistrano from Ruby to Python. Intended for command line use and is heavily systems administration oriented rather than non-interactive library. Same maintainer as Paramiko.
249
249
250
250
Uses Paramiko and suffers from the same limitations. More over, uses threads for parallelisation, while `not being thread safe <https://github.com/fabric/fabric/issues/1433>`_, and exhibits very poor performance and extremely high CPU usage even for limited number of hosts - 1 to 10 - with scaling limited to one core.
251
251
252
252
Library API is non-standard, poorly documented and with numerous issues as API use is not intended.
253
253
254
-
`Ansible<https://www.ansible.com/>`_
255
-
_________________________________________
254
+
Ansible
255
+
_______
256
256
257
257
A configuration management and automation tool that makes use of SSH remote commands. Uses, in parts, both Paramiko and OpenSSH binaries.
258
258
@@ -264,8 +264,8 @@ Again similar to Fabric, its intended and documented use is interactive via comm
264
264
265
265
``parallel-ssh`` is, on the other hand, a suitable option for Ansible as an SSH client that would improve its parallel SSH performance significantly.
Wrapper to ``libssh2`` C library. Used by ``parallel-ssh`` as of ``1.2.0`` and is by same author.
271
271
@@ -279,7 +279,7 @@ In addition, ``parallel-ssh`` uses native threads to offload CPU blocked tasks l
279
279
280
280
Out of all the available Python SSH libraries, ``libssh2`` and ``ssh2-python`` have been shown, see benchmarks above, to perform the best with the least resource utilisation and ironically for a native code extension the least amount of dependencies. Only ``libssh2`` C library and its dependencies which are included in binary wheels.
281
281
282
-
However, it lacks support for some SSH features present elsewhere like ECDSA keys (`PR pending <https://github.com/libssh2/libssh2/pull/206>`_), agent forwarding (`PR pending <https://github.com/libssh2/libssh2/pull/219>`_) and Kerberos authentication - see `feature comparison <http://parallel-ssh.readthedocs.io/en/latest/ssh2.html>`_.
282
+
However, it lacks support for some SSH features present elsewhere like ECDSA keys (`PR pending <https://github.com/libssh2/libssh2/pull/206>`_), agent forwarding (`PR also pending <https://github.com/libssh2/libssh2/pull/219>`_) and Kerberos authentication - see `feature comparison <http://parallel-ssh.readthedocs.io/en/latest/ssh2.html>`_.
0 commit comments