Application that handles sshfs/sftp file systems mounting.
Python Shell
Latest commit b81264a Apr 27, 2016 @spantaleev Bump version to 0.6.2
Failed to load latest commit information.
bash_completion.d Added password-authentication support. Jul 6, 2011
sleep-scripts Add systemd sleep hook Mar 30, 2013
LICENSE.txt Initial work on packaging. Mar 4, 2011 Add systemd sleep hook Mar 30, 2013
README.rst Bump version to 0.6.2 Apr 27, 2016


SftpMan with the GTK frontend

SftpMan consists of a Command Line and a GTK application (packaged separately) that make it simpler to setup and mount SSHFS/SFTP file systems.

The idea was to develop a simple CLI/GUI application for Linux that can be used to manage SFTP systems.

It relies on sshfs to do all the mounting work. SftpMan allows you to setup many remote filesystems and helps you easily mount/unmount them.

Every system managed by SftpMan is identified by an id such as my-machine, which is used in file paths and when managing the system.

Configuration data is stored in ~/.config/sftpman/ as JSON files.

All systems are mounted under /mnt/sshfs/. For the my-machine machine, that would be /mnt/sshfs/my-machine.

Installing on ArchLinux

On ArchLinux, there's an official sftpman AUR package. To install using yaourt:

yaourt -S sftpman

The package takes care of all dependencies and SftpMan should be able to start.

Optional dependencies will be suggested to you upon install.

Installing on other distributions

For other distributions you can install using pip:

pip install sftpman

You also need to install sshfs yourself.

CLI Application

The CLI application (sftpman executable) supports the following commands:

 - Displays this help menu.

 - Lists the available/mounted/unmounted sftp systems.
        Usage: sftpman ls {what}
        Where {what} is one of: available, mounted, unmounted

 - Mounts the specified sftp system, unless it's already mounted.
        Usage: sftpman mount {id}..

 - Mounts all sftp file systems known to sftpman.
        Usage: sftpman mount_all

 - Detects whether we have everything needed to mount sshfs filesystems.

 - Removes a system by id.
        Usage: sftpman rm {system_id}..
        For a list of system ids, see `sftpman ls available`.

 - Defines a new sftp file system configuration or edits an old one with the same id.
        Usage: sftpman setup {options}
        Available {options}:
            --id={unique system identifier}
                You use this to recognize and manage this sftp system.
                It determines what the local mount point is.
                If `--id=example`, the filesystem will be mounted to: `/mnt/sshfs/example`
            --host={host to connect to}
            --port={port to connect to} [default: 22]
            --user={username to authenticate with} [default: current user]
            --mount_opt={option to pass to sshfs} [optional] [can be passed more than once]
                Example: --mount_opt="follow_symlinks" --mount_opt="workaround=rename"
                `sshfs --help` tells you what sshfs options are available
            --mount_point={remote path to mount}
                Specifies the authentication method.
                Can be `password` or `publickey`. [default: publickey]
            --ssh_key={path to the ssh key to use for authentication}
                Only applies if auth_method is `publickey`.
            --cmd_before_mount={command to run before mounting} [default: /bin/true]
                Allows you to run a custom command every time this system is mounted.

 - Unmounts the specified sftp system.
        Usage: sftpman unmount {id}..

 - Unmounts all sftp file systems known to sftpman.
        Usage: sftpman unmount_all

GUI Application

sftpman-gtk is a GTK frontend for sftpman, which is packaged separately. Installing the frontend automatically installs the CLI application as a dependency.


Known limitations

  • Doesn't support mounting in a location different than /mnt/sshfs/