Skip to main content

SSH config synchronisation for AWS

Build Status PyPI version

Generate ssh_config files, based on current Amazon EC2 state.

Features

  • Connect to one or more regions at once.
  • Filter EC2 instances by name. Useful for including relevant nodes only or for creating separate config sets for the same environment (e.g. use a different User for different nodes).
  • Identify hosts using tags or instance IDs:
    • Index duplicates (e.g. in autoscaling groups) using instance launch time.
    • Include a global name prefix and/or a region ID to identify the connection in a unique way.
  • Use public or private IPs.
  • Set various SSH params:
    • Skip strict host checking, if needed. Can be useful when working with (internal) autoscaling groups.
    • Provide a server alive interval to keep the connection from timing out.
    • Use custom identity files.
    • Setup a proxy command for utilizing jump hosts.
    • ...
  • Write to stdout or a master file with config-key substitution. Useful for working with tools, that don't support the Include directive.

Installation

You can install the latest package using pip:

pip install aws-ssh-sync

Usage

To get a full list of options:

aws_ssh_sync --help

Preview

The easiest way to get a preview of the current config in AWS is to print the output directly to stdout:

aws_ssh_sync --profile <profile> --region <region>

Utilising the 'Include' directive

If you want to isolate the generated config, you can write it to a dedicated file, and Include it in the main config. The base use-case is as follows:

aws_ssh_sync --profile <profile> --region <region> > ~/.ssh/config.d/<some_file>

To extend your ~/.ssh/config, add the following line:

Include config.d/*

Working with a single config file

Splitting config into multiple, small files keeps things elegant and clean - you should probably stick to that, if you can.

Unfortunatelly, some tools may still have trouble with the Include directive itself. If you want to use a single file (e.g. ~/.ssh/config) for keeping all configuration, then you can specify the --output-file together with a --config-key:

aws_ssh_sync --profile <profile> --region <region> --config-key <key> --output-file <path>

Behaviour:

  • Configuration is written to the --output-file rather than stdout.
  • If the file doesn't exist, then it will be created.
  • If a section identified by --config-key exists, then it will be replaced.
  • If no --config-key was found, then a new section will be appended to the file.
  • No backup file is created at the moment.

References

Release files for aws-ssh-sync 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aws-ssh-sync 0.3.0
File Size Uploaded
aws-ssh-sync-0.3.0.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aws-ssh-sync 0.3.0
File Interpreter ABI Platform
aws_ssh_sync-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.4 kB

Release files / aws-ssh-sync-0.3.0.tar.gz

Download URL aws-ssh-sync-0.3.0.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
5c6cf8c24d547fbf9fb45e995cde2ccde32cb6a97dc93c8331d393d23f3d1e11
BLAKE2b-256 checksum
How to use checksums
aa9e1c43cbbbb356302999d99eed60b6fd25a83b4205da4c990108fb5c47f72b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.9

Release files / aws_ssh_sync-0.3.0-py3-none-any.whl

Download URL aws_ssh_sync-0.3.0-py3-none-any.whl
Size 10.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48de27475f257770ef7713d5a3cbc844352f0350a0ec0dc98505b57ef6599e7c
BLAKE2b-256 checksum
How to use checksums
3139d952ed9fdd1be2723bf4f6661ff9e4dc5151fde993bc5e6b8b6fdc72e88a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.14.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.6.9

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page