- Upgraded embedded and wheel libssh2 to 1.10.0.
- Upgraded wheel OpenSSL to 1.1.1q.
- Added testing for Python 3.10.
- Removed testing for Python 3.7.
- Added OSX 12.0 wheels.
- Removed OSX <= 10.0 wheels.
- Python 3.10 support.
- Objects depending on
ssh2.Session
would sometimes cause segfault on interpreter shutdown.
- Added manylinux-2014 ARM (aarch64) wheel builds - #156 - Thanks @enaydanov
- Added manylinux-2014 x86_64 wheels for all currently available Python 3 versions.
- Added Windows 3.10 wheels.
- Added OSX 11.6, 11.5 and 11.4 wheels.
- Enabled
ssh2.fileinfo.FileInfo
attributes on Windows builds - #131.
- Added new in libssh2 1.9.0 errors as exceptions.
- Added
Session.methods
,Session.method_pref
andSession.supported_algs
functions. - Added supported method types as
ssh2.session.LIBSSH2_METHOD_*
.
Session.forward_listen_ex
now returns (Listener
,bound_port
) tuple.- Added new in libssh2 1.9.0 host key and hash type attributes to
ssh2.session
. - Added new in libssh2 1.9.0 known host key attributes to
ssh2.knownhost
.
- Added
ssh2.sftp.LIBSSH2_SFTP_ATTR_*
constants for checking and setting SFTP attributes.
Session.userauth_keyboardinteractive
would cause segmentation fault.
- Added helper function
ssh2.utils.find_eol
for finding end of line characters in buffer.
- Updated embedded libssh2 version to
1.9.0
. - Rebuilt sources with Cython
0.29.21
. - Added support for Python 3.8 and 3.9.
Session.userauth_publickey_frommemory
would not work without an empty passphrase provided - #86
- Added Python 3.8 binary wheels for Linux, OSX and Windows.
- Added Python 3.9 binary wheels for Linux.
- Added OSX 10.14 and 10.15 wheels.
- Removed OSX < 10.14 wheels.
- Removed Python 2.7 OSX and Windows wheels.
- Removed Python 3.5 OSX and Windows wheels.
- Removed Windows 32-bit wheels.
- Session object de-allocation no longer calls session disconnect.
- Channel object de-allocation no longer calls channel close.
- Rebuilt sources with Cython
0.29.6
. - Updated Linux and Windows binary wheels to OpenSSL 1.1.
- Updated embedded
libssh2
to latest master. - Added
Ed25519
publickey support vialibssh2
and OpenSSL upgrades.
- Source distribution builds would not include embedded libssh2 module in package - #51
- Removed OSX 10.10 binary wheel builds - deprecated by Travis-CI.
- Updated embedded OpenSSL version for Windows wheel builds.
- Updated embedded OpenSSL version for Windows wheel builds.
- Source distribution builds would not include embedded libssh2 module in package - #51
- Removed OSX 10.10 binary wheel builds - deprecated by Travis-CI.
SFTPHandle.write
function changed to return tuple ofreturn_code, bytes_written
for non-blocking applications to be able to handle partial writes within an SFTP write resulting from a blocked socket.Channel.write*
functions changed to return tuple ofreturn_code, bytes_written
as above.
Behaviour in blocking mode has not changed. Non-blocking applications will now need to handle these functions returning a tuple and resume writes from last written offset of given data.
- Added
Session.sock
public attribute for getting socket used bySession
. - Source distribution default
libssh2
build target updated to upstreamlibssh2
master branch. - Added bundled libssh2 source code for current master branch to repository and source distribution.
- Added automatic build of bundled libssh2 code for source builds and
SYSTEM_LIBSSH2
environment variable to control building and linking against system provided libssh2. This will require additional steps for Windows platforms and older libssh2 versions - see documentation. - Updated binary wheels for all platforms to latest libssh2.
- Added keep alive API implementation - #47.
- Updated
session.userauth_publickey*
functions to make providing public key and private key passphrase optional. - SFTP write calls write on all parts of buffer before returning.
session.last_error()
would always return empty string.
SFTP
,SFTPHandle
,Listener
andPublicKeySystem
functions updated to raise specific exceptions for all knownlibssh2
errors.- Removed exceptions
SFTPHandleError
,SFTPBufferTooSmall
andSFTPIOError
that do not have correspondinglibssh2
error codes. - Re-generated all C code with latest Cython release.
- Removed duplicate libssh2 definitions.
- Re-enabled system package releases.
- System package builds would not work correctly - #25.
- Upgrade embedded
libssh2
in binary wheels to latest version plus enhancements. - Adds support for ECDSA host and client keys.
- Adds support for SHA-256 host key fingerprints.
- Added SSH agent forwarding implementation.
- Windows wheels switched to OpenSSL back end.
- Windows wheels include zlib and have compression enabled.
- Windows wheels no MAC and no encryption options enabled, same as posix wheels.
- SCP functions now raise appropriate exception for all known libssh2 error codes.
ssh2.session.Session.disconnect
now returns0
on success and raises exceptions on errors.- All session
userauth_*
functions now raise specific exceptions.
- SCP functions could not be used in non-blocking mode.
Note - libssh2 changes apply to binary wheels only. For building from source see documentation.
- Session functions now raise exceptions.
- Channel functions now raise specific exceptions.
- SCP errors now raise exceptions.
- SFTP open handle errors now raise exceptions.
- Added exceptions for all known libssh2 error codes.
- Added
ssh2.utils.handle_error_codes
function for raising appropriate exception from error code. - Added file types to
ssh2.sftp
.
- Double de-allocation crash on objects being garbage collected in some rare cases.
- Added
ssh2.channel.Channel.shell
for opening interactive shells.
ssh2.channel.Channel.process_startup
would not handle request types with no message correctly.
- Binary wheels would have bad version info and require git for installation - #17
- Enabled embedded libssh2 library functionality for versions >= 1.6.0.
- Implemented known host API, all functions.
- Added hostkey method on Session class for retrieving server host key.
- Added server host key verification from known hosts file example.
- Added exceptions for all known host API errors.
- Exceptions moved from C-API to Python module
- PyPy build support
- Implemented last_errno and set_last_error session functions
- Agent authentication errors raise exceptions
- C-API refactor
- SFTP IO errors raise exceptions
- Crash on de-allocation of channel in certain cases
- SFTP
readdir_ex
directory listing (long entry) was not returned correctly
- Accept both bytes and unicode parameters in authentication with public key from memory.
- Unicode -> bytes parameter conversion would fail in some cases.
- Agent authentication thread safety.
- Win32 build compatibility.
- Binary wheels for Linux, OSX and Windows, all Python versions, with embedded libssh2 and OpenSSL (embedded OpenSSL is Linux and OSX only).
- OSX CI builds.
- Session initialisation thread safety.
- Agent thread safety.
No code changes.
- Implemented public key subsystem for public key management on remote servers
- Added all libssh2 error codes to
ssh2.error_codes
- Implemented SFTP statvfs and SFTP handle fstatvfs methods.
- Implemented SFTPStatVFS extension class for file system statistics.
- SFTP read and readdir functions now return size/error code along with data.
- SFTP handle fstat now returns attributes.
- Implemented SFTP handle readdir* methods as python generators.
- Block directions function renamed to match libssh2.
- Example scripts.
- All session authentication methods now raise
AuthenticationError
on failure.
- SFTP readdir functions can now be used in non-blocking mode
- Use of SFTP openddir via context manager
- Implemented SCP send and recv methods, all versions.
- Conditional compilation of features requiring newer versions of libssh2.
- Implemented channel receive window adjust, x11_*, poll and handle extended data methods.
- Implemented session get/set blocking, get/set timeout.
- Updated agent connection error exception name.
- Renamed session method name to match libssh2.
- Info extension classes for SCP file stat structure.
- Added context manager to SFTP handle
- Implemented SFTP write, seek, stat, fstat and last_error methods.
- Implemented SFTPAttribute object creation and de-allocation - added unit test.
- Updated API
- Updated session, channel, agent and pkey to accept any string type arguments.
- Added get_exit_signal implementation for channel.