SSH config synchronisation for AWS
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
Userfor 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
stdoutor a master file with config-key substitution. Useful for working with tools, that don't support theIncludedirective.
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-filerather thanstdout. - If the file doesn't exist, then it will be created.
- If a section identified by
--config-keyexists, then it will be replaced. - If no
--config-keywas found, then a new section will be appended to the file. - No backup file is created at the moment.
References
- Origin, motivation and acknowledgements - blog post.
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aws-ssh-sync-0.3.0.tar.gz | 7.8 kB | Without provenance | Details for aws-ssh-sync-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aws_ssh_sync-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for aws_ssh_sync-0.3.0-py3-none-any.whl |
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
|
Security for aws-ssh-sync 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.