Installation of pysftp in debian 9 and Ubuntu
sudo apt-get update sudo apt-get install pysftp
Or try:
sudo apt install python-pip
This instruction is compatible with linux and windows:
pip install pysftp
dev@dev-redhat:/$ pip install pysftp Collecting pysftp Downloading pysftp-0.2.9.tar.gz Collecting paramiko>=1.17 (from pysftp) Downloading paramiko-2.4.0-py2.py3-none-any.whl (192kB) 100% |████████████████████████████████| 194kB 1.1MB/s Collecting pynacl>=1.0.1 (from paramiko>=1.17->pysftp) Downloading PyNaCl-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl (696kB) 100% |████████████████████████████████| 706kB 843kB/s Collecting cryptography>=1.5 (from paramiko>=1.17->pysftp) Downloading cryptography-2.1.4-cp27-cp27mu-manylinux1_x86_64.whl (2.2MB) 100% |████████████████████████████████| 2.2MB 419kB/s Collecting bcrypt>=3.1.3 (from paramiko>=1.17->pysftp) Downloading bcrypt-3.1.4-cp27-cp27mu-manylinux1_x86_64.whl (57kB) 100% |████████████████████████████████| 61kB 4.6MB/s Collecting pyasn1>=0.1.7 (from paramiko>=1.17->pysftp) Downloading pyasn1-0.4.2-py2.py3-none-any.whl (71kB) 100% |████████████████████████████████| 71kB 940kB/s Collecting six (from pynacl>=1.0.1->paramiko>=1.17->pysftp) Downloading six-1.11.0-py2.py3-none-any.whl Collecting cffi>=1.4.1 (from pynacl>=1.0.1->paramiko>=1.17->pysftp) Downloading cffi-1.11.2-cp27-cp27mu-manylinux1_x86_64.whl (405kB) 100% |████████████████████████████████| 409kB 752kB/s Collecting enum34; python_version < "3" (from cryptography>=1.5->paramiko>=1.17->pysftp) Downloading enum34-1.1.6-py2-none-any.whl Collecting idna>=2.1 (from cryptography>=1.5->paramiko>=1.17->pysftp) Downloading idna-2.6-py2.py3-none-any.whl (56kB) 100% |████████████████████████████████| 61kB 2.9MB/s Collecting asn1crypto>=0.21.0 (from cryptography>=1.5->paramiko>=1.17->pysftp) Downloading asn1crypto-0.23.0-py2.py3-none-any.whl (99kB) 100% |████████████████████████████████| 102kB 1.5MB/s Collecting ipaddress; python_version < "3" (from cryptography>=1.5->paramiko>=1.17->pysftp) Downloading ipaddress-1.0.18-py2-none-any.whl Collecting pycparser (from cffi>=1.4.1->pynacl>=1.0.1->paramiko>=1.17->pysftp) Downloading pycparser-2.18.tar.gz (245kB) 100% |████████████████████████████████| 256kB 753kB/s Building wheels for collected packages: pysftp, pycparser Running setup.py bdist_wheel for pysftp ... done Stored in directory: /home/dev/.cache/pip/wheels/ff/45/8f/96b2e1e8406f648a9604a1deeb524404018675da5dd992da19 Running setup.py bdist_wheel for pycparser ... done Stored in directory: /home/dev/.cache/pip/wheels/95/14/9a/5e7b9024459d2a6600aaa64e0ba485325aff7a9ac7489db1b6 Successfully built pysftp pycparser Installing collected packages: six, pycparser, cffi, pynacl, enum34, idna, asn1crypto, ipaddress, cryptography, bcrypt, pyasn1, paramiko, pysftp Successfully installed asn1crypto bcrypt cffi cryptography-1.2.3 enum34-1.1.2 idna-2.0 ipaddress-1.0.16 paramiko pyasn1-0.1.9 pycparser pynacl pysftp six-1.10.0
Description
A simple interface to SFTP. The module offers high level abstractions and task based routines to handle your SFTP needs. Checkout the Cook Book, in the docs, to see what pysftp can do for you.
Example
import pysftp with pysftp.Connection('hostname', username='me', password='secret') as sftp: with sftp.cd('public'): # temporarily chdir to public sftp.put('/my/local/filename') # upload file to public/ on remote sftp.get('remote_file') # get a remote file
Change Log
0.2.9 (current, released 2016-07-04)
bugfix: correctly implement hostcheck. Now, be default pysftp will verify the host. See pysftp.CnOpts.hostkeys
added pysftp.Connection.remote_server_key – used to retrieve the remote hosts server key.
added support for enabling compression, compression (J. Kruth)
added .active_compression, to return the active local and remote compression settings as a tuple
fixed an unwanted logging side-effect, after you set logging, it would remain, even if you closed the .Connection and couldn’t be changed to something else. Now when Connection closes, any logging handlers are closed and can be changed to something else upon the next .Connection
moved log parameter of Connection to the new CnOpts connection options object, deprecated the existing log parameter, will be removed in 0.3.0
modified pysftp.Conection.walktree to always use posixpath conventions when walking a remote directory per the latest draft-ietf-secsh-filexfer-13.txt. Issue encountered with windows clients (#60)
modified pysftp.reparent to handle mis-matched pathing, i.e. windows -> posix, better (#61)
0.2.8 (released 2014-05-28)
created pysftp.walktree for walking local directories
added param recurse to .pysftp.Connection.walktree to allow it to do another trick
created .put_d to put the contents of a local directory to a remote one
created a context manager chdir method, pysftp.Connection.cd
created .put_r to recursively put the contents of a local directory to a remote one
fixed a bug with .st_mode_to_int on py3 (#52)
.listdir_attr now returns a sorted list, sorted on filename
created pysftp.cd with-context version of os.chdir for local directories
created docs, cookbook to show off some of the notable features of pysftp
0.2.7 (released 2014-05-24)
created pysftp.Connection.walktree, recursively walk, depth first, a remote directory structure. Used as the base of .get_r. See tests/test_walktree.py for examples.
added .unlink as synonym for .remove
added .normalize
created .get_r to recursively copy remote directories to a local path
created .pwd to return the current working directory
created .cwd as synonym for .chdir
modified .listdir to return a sorted list instead of an arbitrary one
added .readlink, always returns an absolute path
created .get_d to copy the remote directory to a local path (non-recursive)
added .timeout to set the read/write timeout of the underlying channel for pending read/write ops
added .listdir_attr, wrapper for paramiko method
added .truncate, method returns the new file size
improved DRY’ness of test suite
0.2.6 (released 2014-05-17)
added preserve_mtime parameter to .put, optionally updates the remote file’s st_mtime to match the local file.
added preserve_mtime parameter to .get, optionally updates the local file’s st_mtime to match the remote file
added .exists and .lexists, use .stat and .lstat respectively
added .symlink
created .isdir, .isfile, .makedirs
added .chmod
added .chown
added .sftp_client which exposes underlying, active SFTPClient object for advance use
0.2.5 (released 2014-05-15)
added ciphers parameter to .Connection object (D. Reilly)
added .active_ciphers to return local and remote cipher in use
added .security_options, where you can get available ciphers, among other information
enhanced logging, and added documentation and tests
0.2.4 (released 2014-05-13)
.Connection can be used in a with statement
add .remove
added support for callback and confirm params to .put
added support for callback on .get
added support for .open
fixed password bug and now differentiates between an empty string and None
added support for paramiko.AgentKey to be passed in as the private_key for Connection
added support for .mkdir
added support for .rmdir
added support for .stat and .lstat
added helper function, .st_mode_to_int,to convert the st_mode value back into a common integer representation
added .getfo
added .putfo
0.2.3 (released 2014-05-10)
host code on pypi to keep pip happy
move code to bitbucket
enhance testing
README.rst and LICENSE named properly
cleaner error handling
0.2.2
additions
chdir(self, path) – change the current working directory on the remote
getcwd(self) – return the current working directory on the remote
listdir(self, path=’.’)return a list of files for the given path