Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Minimal SSH wrapper around paramiko

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 docs
Octocat-spinner-32 sshed
Octocat-spinner-32 tests
Octocat-spinner-32 .travis.yml
Octocat-spinner-32 MANIFEST.in
Octocat-spinner-32 Makefile
Octocat-spinner-32 README.rst
Octocat-spinner-32 Vagrantfile
Octocat-spinner-32 requirements.pip
Octocat-spinner-32 setup.py
README.rst

sshed

sshed is a minimal paramiko/ssh2 wrapper that makes working with ssh through python just like working with it in normal SSH. It will use your configuration that you have already created first then any extra options can be passed in through the library that is using it. Servers are base objects that can be extended to do other tasks. Also the API is dead simple.

Documentation / Repo Information:

Examples

Creating a server from your ~/.ssh/config with ssh keys created. This also uses a host alias

from sshed import servers
server = servers.from_conf('development')
server.run('whoami').output
>> ['cwood']
server.run('sudo whoami').output
>> ['root']
server.run('cd /var/www').returncode
>> 0
server.run('pwd').output
>> ['/var/www']

Creating a server from just a hostname

from sshed import servers
server = servers.from_conf('myserver.com')
server.run('hostname').output
>> ['myserver.com']

Uploading/Downloading from/to a server

from sshed import servers
server = servers.from_conf('development')
server.upload('/tmp/mytar.tar', '/var/tmp/mytar.tar')
server.download('/var/logs/httpd/error_log', '/tmp/remote/error_log')

Creating a new server without a ssh config

from sshed.servers import Server
server = Server(username='username', hostname='development.mycompany.com',
        password='supersecretpassword')

server.run( ... )

Working with argparse. This sshed module also has a helper for working with argparse. You can import an action so that when a user puts in a --server server.mycompany.com it will create a new server instance for that server.

from sshed.argparse_actions import ServerAction

# some other argparse information
parser.add_argument('-s', '--server', action=ServerAction, dest='server')
Something went wrong with that request. Please try again.