Bindings for libssh C library.
Binary wheels are provided for Linux (manylinux 2010), OSX (10.14 and 10.15 for brew Python), and Windows 64-bit (Python 3.6/3.7/3.8).
Wheels have no dependencies. For building from source, see documentation.
pip install ssh-pythonProject is beta status, please report any issues.
from __future__ import print_function import os import pwd from ssh.session import Session from ssh import options # Linux only USERNAME = pwd.getpwuid(os.geteuid()).pw_name HOST = 'localhost' s = Session() s.options_set(options.HOST, HOST) s.connect() # Authenticate with agent s.userauth_agent(USERNAME) chan = s.channel_new() chan.open_session() chan.request_exec('echo me') size, data = chan.read() while size > 0: print(data.strip()) size, data = chan.read() chan.close()Output:
meThe library uses Cython based native code extensions as wrappers to libssh.
- Thread safe - GIL released as much as possible
- libssh threading limitations apply - anything not supported in C is not supported in Python
- Very low overhead thin wrapper
- Object oriented
- Memory freed automatically and safely as objects are garbage collected by Python
- Uses Python semantics where applicable
- channel/file handle context manager support
- channel/file handle iterator support
- Raises low level C errors as Python exceptions