fs.sshfs
fs.sshfs copied to clipboard
Pyfilesystem2 over SSH using paramiko
fs.sshfs 
Requirements
| PyFilesystem2 | |||
|---|---|---|---|
| six | |||
| paramiko | |||
| property-cached |
fs.sshfs supports all Python versions supported by PyFilesystem2:
Python 2.7, and Python 3.5 onwards. Code should still be compatible with
Python 3.4, but not tested anymore.
Installation
Install directly from PyPI, using pip:
$ pip install fs.sshfs
There is also a conda-forge package available:
$ conda install -c conda-forge fs.sshfs
Usage
Opener
Use fs.open_fs to open a filesystem with an SSH
FS URL:
import fs
my_fs = fs.open_fs("ssh://[user[:password]@]host[:port]/[directory]")
The sftp scheme can be used as an alias for the ssh scheme in the FS
URL. Additional argument can be passed to the SSHFS constructor as
percent-encoded URL parameters (excepted policy). See section below
for a list of all supported arguments.
Constructor
For a more granular way of connecting to an SSH server, use the
fs.sshfs.SSHFS constructor, which signature is:
from fs.sshfs import SSHFS
my_fs = SSHFS(
host, user=None, passwd=None, pkey=None, timeout=10, port=22,
keepalive=10, compress=False, config_path='~/.ssh/config'
)
with each argument explained below:
host: the name or IP address of the SSH serveruser: the username to connect with, defaults to the current user.passwd: an optional password, used to connect directly to the server or to decrypt the public key, if any given.pkey: aparamiko.PKeyobject, a path, or a list of paths to an SSH key.timeout: the timeout, in seconds, for networking operations.port: the port the SSH server is listening on.keepalive: the interval of time between keepalive packets, in seconds. Set to 0 to disable.compress: set toTrueto compress the communications with the server.config_path: the path to an OpenSSH configuration file.exec_timeout: the timeout, in seconds, for arbitrary SSH commands on the server.policy: aparamiko.MissingHostKeyPolicyinstance, orNoneto useparamiko.AutoAddPolicy.
Additional keyword arguments will be passed to the underlying
paramiko.SSHClient.connect
call, taking precedence over implicitly derived arguments. Once created, the SSHFS filesystem behaves like any
other filesystem (see the PyFilesystem2 documentation).
Files
SSHFS.openbin has the following extra options that can be passed as
keyword arguments to control the file buffering:
prefetch: enabled by default, use a background thread to prefetch the content of a file opened in reading mode. Does nothing for files in writing mode.pipelined: enable pipelined mode, avoid waiting for server answer between two uploaded chunks. Does nothing for files in reading mode.
Configuration
SSHFS are aware of SSH config
files
and as such, one of the hosts in the configuration file can be provided
as the host argument for the filesystem to connect to the server with
the proper configuration values.
Feedback
Found a bug ? Have an enhancement request ? Head over to the GitHub issue tracker of the project if you need to report or ask something. If you are filling in on a bug, please include as much information as you can about the issue, and try to recreate the same bug in a simple, easily reproductible situation.
Credits
fs.sshfs is developed and maintained by:
The following people contributed to fs.sshfs:
- Reimar Bauer
- Paul Gessinger
- Mariusz Kryński
- Will McGugan
- Jeremy Nimmer
- Tim Nyborg
- Danica J. Sutherland
- John Vandenberg
This project obviously owes a lot to the PyFilesystem2 project and all its contributors.
See also
- fs, the core PyFilesystem2 library
- fs.archive, enhanced archive filesystems for PyFilesystem2
- fs.smbfs, PyFilesystem2 over SMB using pysmb