AWS SSH Utils
uvx aws-ssh-utils
uvx aws-ssh-utils app # optional - `app` is default.
uvx aws-ssh-utils ec2
uvx aws-ssh-utils emr
uvx aws-ssh-utils emr-all
# Also exposed as `aws_ssh`
uvx --from aws-ssh-utils aws_ssh
This allows you to interactively SSH to an EC2 instance, EMR instance, or all EMR instances with TMUX.
It utilizes questionary to ask you which instance you want to connect to.
App
Terminal UI to browse EC2 instances and EMR clusters, with SSH shells in tabs.
It's the default command, so aws_ssh and aws_ssh -p my-profile launch it too.
Each connection tries, in order: ~/.ssh/config, SSH over AWS SSM (session-manager-plugin), opkssh (via instance/cluster tags),
the instance's EC2 key found in ~/.ssh, then your default keys/ssh-agent.
Unknown host keys are accepted and appended to ~/.ssh/known_hosts; changed host keys are rejected.
$ aws_ssh app --help
Usage: aws_ssh app [OPTIONS]
Browse EC2 instances and EMR clusters, and open SSH shells in tabs.
Options:
-p, --profile TEXT Which AWS profile to use
-r, --region TEXT Which AWS region to use
--scrollback INTEGER RANGE Lines of scrollback per shell. Defaults to your
tmux or Windows Terminal setting, else 1000.
[x>=0]
--help Show this message and exit.
Scroll back with the mouse wheel or shift+PgUp/shift+PgDn; typing jumps back to the prompt.
F12 shows/hides the sidebar, ctrl+w closes a failed tab, ctrl+q quits. Every other key goes to the focused shell.
Logs are viewable with textual console.
EC2
Select an instance from an interactive list. You can filter the instances by name.
$ aws_auth ec2 --help
Usage: aws_ssh ec2 [OPTIONS]
Asks user which EC2 instance they want to connect to, then opens an
interactive SSH session to the instance
Options:
-p, --profile TEXT Which AWS profile to use
-r, --region TEXT Which AWS region to use
-u, --user TEXT Which user to connect as
--private / --public Connect to the instance's private or public IP
-k, --key-file FILE Which key file to use to connect
--scrollback INTEGER RANGE
Lines of scrollback per shell. Defaults to your tmux or
Windows Terminal setting, else 1000. [x>=0]
--help Show this message and exit.
EMR
Select the EMR cluster, instance group, and instance to connect to.
$ aws_ssh emr --help
Usage: aws_ssh emr [OPTIONS]
Asks user which Cluster and EC2 instance they want to connect to, then opens an interactive SSH session to the instance
Options:
-p, --profile TEXT Which AWS profile to use
-r, --region TEXT Which AWS region to use
-u, --user TEXT Which user to connect as
--private / --public Connect to the instance's private or public IP
-k, --key-file FILE Which key file to use to connect
--scrollback INTEGER RANGE
Lines of scrollback per shell. Defaults to your tmux or
Windows Terminal setting, else 1000. [x>=0]
--help Show this message and exit.
EMR All
Select the EMR cluster to connect to. Then creates a new TMUX session with a window per instance. Each window will have an SSH connection to that instance open.
$ aws_ssh emr-all --help
Usage: aws_ssh emr-all [OPTIONS]
Asks user which Cluster and EC2 instance they want to connect to, Then
prints a tmux cli statement that will open a new session with a window per
ec2 instance with ssh shell already opened.
Options:
-p, --profile TEXT Which AWS profile to use
-r, --region TEXT Which AWS region to use
-u, --user TEXT Which user to connect as
--private / --public Connect to the instance's private or public IP
-k, --key-file FILE Which key file to use to connect
--help Show this message and exit.
Metadata
Release files for aws-ssh-utils 0.2.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aws_ssh_utils-0.2.7.tar.gz | 27.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aws_ssh_utils-0.2.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.7 kB
Release files / aws_ssh_utils-0.2.7.tar.gz
| Download URL | aws_ssh_utils-0.2.7.tar.gz |
|---|---|
| Size | 27.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e7e7cf7b030cd6437cb4df7d482775765aba27a81b76fa30f09ce326c80e9833
|
|
BLAKE2b-256 checksum How to use checksums |
d2c8a7b1e5354f74a252f389ad21ea008d118cb28029175c2cd7988c83f03d80
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.1 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.14.6"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.14.6","system":{"name":"Windows","release":"11"}} HTTPX2/2.13.1
|
Release files / aws_ssh_utils-0.2.7-py3-none-any.whl
| Download URL | aws_ssh_utils-0.2.7-py3-none-any.whl |
|---|---|
| Size | 32.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3be8a0ea27aa71a5ea8707606ebf817095d338332110d3e2f4070b67cbf1f642
|
|
BLAKE2b-256 checksum How to use checksums |
be04436ab00a6023300a37141dcaeb104573fd51108d0dbe2fadef86b7ddc7d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.18.1 {"ci":null,"cpu":"AMD64","implementation":{"name":"CPython","version":"3.14.6"},"installer":{"name":"hatch","version":"1.18.1"},"openssl_version":"OpenSSL 3.5.7 9 Jun 2026","python":"3.14.6","system":{"name":"Windows","release":"11"}} HTTPX2/2.13.1
|