Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/spantaleev/sftpman

Application that handles sshfs/sftp file systems mounting.
https://github.com/spantaleev/sftpman

fuse sftp sshfs

Last synced: 2 months ago
JSON representation

Application that handles sshfs/sftp file systems mounting.

Awesome Lists containing this project

README

        

SftpMan with the GTK frontend
=============================

.. image:: https://github.com/spantaleev/sftpman-gtk/raw/master/sftpman-gui.png

---------------------------------------

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::

help:
- Displays this help menu.

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

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

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

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

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

setup:
- 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}
--auth_method={method}
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.

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

umount_all:
- Unmounts all sftp file systems known to sftpman.
Usage: sftpman umount_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.

Dependencies
------------

- `sshfs`_
- Python 2.7+

Known limitations
-----------------

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

.. _sshfs: http://fuse.sourceforge.net/sshfs.html
.. _ArchLinux: http://www.archlinux.org/
.. _AUR: https://wiki.archlinux.org/index.php/AUR
.. _sftpman AUR package: https://aur.archlinux.org/packages/sftpman/
.. _sftpman-gtk: https://github.com/spantaleev/sftpman-gtk