Skip to main content

awssh

SSH boto3 utility for AWS

Installation

First, install the aws-cli and boto3 libraries:

$ pip3 install awscli --upgrade --user
$ pip install boto3

Next, set up credentials and default region:

$ aws configure

Finally, install the awssh utility:

$ pip install ssh-aws # or pip install --user ssh-aws

Note: The awssh utility is installed in $HOME/Library/Python/2.7/bin which may not be on PATH. Consider adding this directory to PATH.

Version update

$ echo y | pip uninstall ssh-aws
$ pip install --no-cache --user ssh-aws
$ awssh --version

Requirements

  • Python 2.7
  • boto3
  • aws-cli

Features

The awssh utility gives you a list of aws instances and preconfigures ssh with the proper key and user. You can filter by instance name. If it matches only one instance you will be logged into it. This utility also allows local and remote port forwarding for SSH tunneling (e.g. ssh -L 9000:imgur.com:80 user@<ip_address>). By default, ssh command is executed with the -A option, which enables forwarding the authentication agent connection. This is particularly useful when using a single access point such as a jump server. In addition, if an instance without an external IP is selected, the utility attempts to find a bastion server and ssh with the -t option (e.g. ssh -A ubuntu@<bastion> -t ssh <ip_address>).

Usage

usage: awsh [-h] [--region REGION] [--profile PROFILE] [--users USERS [USERS ...]]
                   [-i KEY_PATH] [-c COMMAND] [-r REMOTE_HOST]
                   [-p REMOTE_PORT] [-l LOCAL_PORT] [--keys KEYS]
                   [--timeout TIMEOUT] [--console-output] [--version]
                   [instance name key word]

SSH into AWS instances. The default user list assumes that your user is centos, ubuntu, or ec2-user.

positional arguments:
  filter                Optional instance name or key word as filter. If only one instance is found,
                        it will connect to it directly.

optional arguments:
  -h, --help            Show usage message and exit.
  --users USERS [USERS ...]
                        Users to try (centos, ubuntu, and ec2-user are defaults).
  --region REGION       AWS region (User default if non is provided).
  -i KEY_PATH, --key-path KEY_PATH
                        Specific key path, overrides, --keys
  -c COMMAND, --command COMMAND
                        Translates to ssh -C
  -r REMOTE_HOST, --remote-host REMOTE_HOST
                        Open a tunnel.
                        Equivalent to ssh -L <local-port>:<remote-host>:<remote-port> <selected-aws-host>
  -p REMOTE_PORT, --remote-port REMOTE_PORT
                        Port to use on the remote host (default is 5432).
  -l LOCAL_PORT, --local-port LOCAL_PORT
                        Port to use on the local host. Get overwritten by
                        remote port if not defined.
  --keys KEYS           Directory of the private keys (~/.ssh by default).
  --timeout TIMEOUT     SSH connection timeout.
  --console-output      Display the instance console out before logging in.
  --profile             Use a specific profile from your credentials file.
  --version             Returns awssh's version.

  Examples:
    "awssh --region us-east-2"
    "awssh --users user1 user2 --region us-east-2 --keys '~/.ssh' instance-name"
    "awssh instance-name --users user1 user2".

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ssh-aws-2.3.6.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ssh_aws-2.3.6-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file ssh-aws-2.3.6.tar.gz.

File metadata

  • Download URL: ssh-aws-2.3.6.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.7

File hashes

Hashes for ssh-aws-2.3.6.tar.gz
Algorithm Hash digest
SHA256 da9c6a73909f8834ad5c7ff359e10dfedc757b8be42cfcfc7d55c1dba606e027
MD5 e3ce3ec8d112e1a9f0c6d7f40bf8cc22
BLAKE2b-256 e1b573975e08185a105dfefcf861a04598e31e2f3a83d77723e5bce8682762d7

See more details on using hashes here.

File details

Details for the file ssh_aws-2.3.6-py3-none-any.whl.

File metadata

  • Download URL: ssh_aws-2.3.6-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.5.7

File hashes

Hashes for ssh_aws-2.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 94639140955d242cb6f1196130d0824fa31035cee4f6d4a01a5f30d35c799a2f
MD5 050060bb859788c776b364d653118701
BLAKE2b-256 3fba45d315564d23ffed0358dfdf49f51bd98249f79a18f780572db64d887740

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page