Skip to content

Releases: ParallelSSH/parallel-ssh

Release 1.13.0

03 Sep 13:06
c7d446e
Compare
Choose a tag to compare

Changes

  • Added pssh.config.HostConfig for providing per-host configuration. Replaces dictionary host_config which is now deprecated. See per-host configuration - https://parallel-ssh.readthedocs.io/en/latest/advanced.html#per-host-configuration - documentation.
  • ParallelSSHClient.scp_send and scp_recv with directory target path will now copy source file to directory keeping existing name instead of failing when recurse is off - #183.
  • pssh.clients.ssh.SSHClient wait_finished timeout is now separate from SSHClient(timeout=<timeout>) session timeout.
  • ParallelSSHClient.join with timeout now has finished and unfinished commands as Timeout exception arguments for use by client code.

Fixes

  • ParallelSSHClient.copy_file with recurse enabled and absolute destination path would create empty directory in home directory of user - #197.
  • ParallelSSHClient.copy_file and scp_recv with recurse enabled would not create remote directories when copying empty local directories.
  • ParallelSSHClient.scp_send would require SFTP when recurse is off and remote destination path contains directory - #157.
  • ParallelSSHClient.scp_recv could block infinitely on large - 200-300MB or more - files.
  • SSHClient.wait_finished would not apply timeout value given.

Release 1.12.1

30 Aug 18:59
c1ca671
Compare
Choose a tag to compare

Fixes

  • Reading from output streams with timeout via run_command(<..>, timeout=<timeout>) would raise timeout early when trying to read from a stream with no data written to it while other streams have pending data - #180.

Release 1.12.0

27 Aug 18:12
4528ba5
Compare
Choose a tag to compare

Changes

  • Added ssh-python based native client with run_command implementation.
  • ParallelSSHClient.join with timeout no longer consumes output by default to allow reading of output after timeout.

Fixes

  • ParallelSSHClient.join with timeout would raise Timeout before value given when client was busy with other commands - #207

ssh-python client at pssh.clients.ssh.ParallelSSHClient is available for testing. Please report any issues.

To use:

from pssh.clients.ssh import ParallelSSHClient

This release adds (yet another) client, this one based on ssh-python (libssh). Key features of this client are more supported authentication methods compared to ssh2-python.

Future releases will also enable certificate authentication for the ssh-python client.

Please migrate to one of the two native clients if have not already as paramiko is very quickly accumulating yet more bugs and the 2.0.0 release which removes it is imminent.

Users that require paramiko for any reason can pin their parallel-ssh versions to parallel-ssh<2.0.0.

Release 1.11.2

25 Aug 17:33
4f23edc
Compare
Choose a tag to compare

Fixes

  • ParallelSSHClient going out of scope would cause new client sessions to fail if client.join was not called prior - #200

Release 1.11.1

20 Aug 12:48
9a298a7
Compare
Choose a tag to compare

Changes

  • Improved packaging.

Release 1.11.0

20 Aug 11:52
89985ce
Compare
Choose a tag to compare

Changes

  • Moved socket polling to gevent.select.poll to increase performance and better handle high number of sockets - #189
  • HostOutput.exit_code is now a dynamic property returning either None when exit code not ready or the exit code as reported by channel - #191
  • ParallelSSHClient.get_exit_codes is now a no-op and scheduled to be removed in 2.0.0.

Packaging

  • Removed OSX Python 3.6 and 3.7 wheels. OSX wheels for brew python, currently 3.8, on OSX 10.14 and 10.15 are provided.

Fixes

  • Native client would fail on using sockets with large file descriptor values - #189

Release 1.10.0

14 Aug 16:17
d961c42
Compare
Choose a tag to compare

Changes

  • Added return_list optional argument to run_command to return list of HostOutput objects rather than dictionary - defaults to False. List output will become default starting from 2.0.0.
  • Updated native clients for new version of ssh2-python.
  • Manylinux 2010 wheels.
  • Added OSX 10.14 and 10.15 wheels.
  • Removed OSX < 10.14 wheels.
  • Removed Windows 32 bit wheels.
  • Removed Python 3.5 wheels for OSX and Windows.
  • Added Python 3.8 support and wheels.

Fixes

  • Sockets would not be closed on client going out of scope - #175
  • Calling join() would reset encoding set on run_command - #159

Release 1.9.1

04 Nov 11:18
Compare
Choose a tag to compare

Fixes

  • Native client SCP and SFTP uploads would not handle partial writes from waiting on socket correctly.
  • Native client copy_file SFTP upload would get stuck repeating same writes until killed when copying multi-MB files from Windows clients - #148
  • Native client scp_send would not correctly preserve file mask of local file on the remote.
  • Native client tunnel, used for proxy implementation, would not handle partial writes from waiting on socket correctly.

Release 1.9.0

23 Oct 23:29
Compare
Choose a tag to compare

Changes

  • Removed libssh2 native library dependency in favour of bundled ssh2-python libssh2 library.
  • Changed native client forward agent default behaviour to off due to incompatibility with certain SSH server implementations.
  • Added keep-alive functionality to native client - defaults to 60 seconds. ParallelSSHClient(<..>, keepalive_seconds=<interval>) to configure interval, Set to 0 to disable.
  • Added ~/.ssh/id_ecdsa default identity location to native client.

Release 1.8.2

06 Oct 16:21
Compare
Choose a tag to compare

Fixes

  • Native parallel client forward_ssh_agent flag would not be applied correctly.