SFTP interface to Rackspace Cloud Files and OpenStack Object Storage (Swift)
Project description
This is a SFTP (Secure File Transfer Protocol) interface to Rackspace Cloud Files and OpenStack Object Storage, providing a service that acts as a proxy between a SFTP client and a remote files/storage service.
The username/password pair used to open the SFTP session is validated using the authentication service of the files/storage service to get an authentication token.
The communication between the client and the SFTP daemon is encrypted all the time, and the SFTP service supports HTTPS communication with the remote files/storage service.
Install
Requirements:
python (2.6)
paramiko (1.7.6+; 1.10.1 recommended)
python-cloudfiles (1.7.9)
python-daemon (1.5.5)
ftp-cloudfs (0.21.1)
python-memcached (1.45)
Optional, only for Auth 2.0 (Keystone):
python-keystoneclient 0.1.3.66 or later
These are the minimum recommended versions based in our testing environment.
You may need to create a host key with ssh-keygen.
To install the software, run following command:
python setup.py install
Or using pip:
pip install sftp-cloudfs
Please use the latest pip version, old versions may have bugs. You can upgrade pip using pip: pip install –upgrade pip.
Usage
Once installed you can run the service with sftpcloudfs executable, that supports following options:
- --version
show program’s version number and exit
- -h, --help
show this help message and exit
- -a AUTHURL, --auth-url=AUTHURL
Authentication URL
- -k HOST_KEY, --host-key-file=HOST_KEY
Host RSA key used by the server
- -b BIND_ADDRESS, --bind-address=BIND_ADDRESS
Address to bind (default: 127.0.0.1)
- -p PORT, --port=PORT
Port to bind (default: 8022)
- --memcache=MEMCACHE
Memcache server(s) to be used for cache (ip:port)
- -l LOG_FILE, --log-file=LOG_FILE
Log into provided file
- -f, --foreground
Run in the foreground (don’t detach from terminal)
- --syslog
Enable logging to system logger (daemon facility)
- -v, --verbose
Show detailed information on logging
- --pid-file=PID_FILE
Pid file location when in daemon mode
- --uid=UID
UID to drop the privileges to when in daemon mode
- --gid=GID
GID to drop the privileges to when in daemon mode
- --keystone-auth
Use auth 2.0 (Keystone, requires keystoneclient)
- --keystone-region-name=REGION_NAME
Region name to be used in auth 2.0
- --keystone-tenant-separator=TENANT_SEPARATOR
Character used to separate tenant_name/username in auth 2.0, default: TENANT.USERNAME
- --keystone-service-type=SERVICE_TYPE
Service type to be used in auth 2.0, default: object- store
- --keystone-endpoint-type=ENDPOINT_TYPE
Endpoint type to be used in auth 2.0, default: publicURL
- --config=CONFIG
Use an alternative configuration file
The default location for the configuration file is /etc/sftpcloudfs.conf.
Memcache is optional but highly recommended for better performance.
By default Swift auth 1.0 will be used, and is compatible with Rackspace Cloud Files and OpenStack Object Storage (Swift) using swauth authentication middleware.
Optionally OpenStack Identity Service 2.0 (aka keystone) can be used. Currently python-keystoneclient is required to use auth 2.0 and it can be enabled with –keystone-auth option. Please check the example configuration file for further details.
License
This is free software under the terms of MIT license (check COPYING file included in this package).
The server is loosely based on the BSD licensed sftpd server code from:
Contact and support
The project website is at:
There you can file bug reports, ask for help or contribute patches.
Contributors
Christophe Le Guern <c35sys@gmail.com>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.