/fs.sshfs

Pyfilesystem2 over SSH using paramiko

Primary LanguagePythonGNU Lesser General Public License v2.1LGPL-2.1

fs.sshfs

Source PyPI Conda Travis Codecov Codacy Format License

Requirements

pyfilesystem2 PyPI fs Source fs License fs
six PyPI six Source six License six
paramiko PyPI paramiko Source paramiko License paramiko

Installation

Install directly from PyPI, using pip :

pip install 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 following URL parameters are supported: timeout, keepalive.

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, paswd=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 server

user

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

a paramiko.PKey object, 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 to True to compress the communications with the server

config_path

the path to an OpenSSH configuration file.

Once created, the SSHFS filesystem behaves like any other filesystem (see the Pyfilesystem2 documentation).

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.

See also

  • fs, the core pyfilesystem2 library
  • fs.archive, enhanced archive filesystems for pyfilesystem2
  • fs.smbfs, Pyfilesystem2 over SMB using pysmb