Skip to main content

Interactive CLI to connect to AWS EC2 via SSM or SSH-over-SSM, with keyword search and multi-session terminal launch.

Project description

ssm-connect

Interactive CLI to connect to AWS EC2 instances and RDS databases via:

  • SSM Session Manager (interactive shell)
  • SSH over SSM (with your SSH key)
  • RDS Port Forwarding (via EC2 bastion host)

Multiple sessions in parallel (each opens in a new terminal). Keyword search across Name, Instance ID, and all tag values. Simple, cross-platform, and secure-by-default.

Features

  • Target Selection: Choose to connect to EC2 instances or RDS databases
  • EC2 Connections:
    • SSM Session Manager (interactive shell)
    • SSH over SSM (with private key authentication)
  • RDS Connections:
    • Port forwarding to RDS databases via EC2 bastion host
    • Auto-selects available local port
  • Smart Search: Filter instances by keywords (matches Name, InstanceId, and all tag values)
  • Multi-Session: Opens each connection in a new terminal window (Linux, macOS, Windows) allowing for multiple simultaneous sessions.
  • AWS Session: Automatically inherits AWS credentials

Install

Latest release from PyPI: pip install --upgrade ssm-connect

Run the tool: ssm-connect

Requirements

  • User should already be logged in to AWS
  • AWS CLI v2
  • SSM Session Manager plugin (installation guide)
  • OpenSSH client (ssh command) - for SSH over SSM
  • Python 3.8+
  • Appropriate IAM role

Terminal Apps

The tool automatically detects and uses available terminal emulators:

  • Windows: Windows Terminal (wt), PowerShell, or cmd
  • macOS: Terminal.app
  • Linux: gnome-terminal, konsole, xterm, or x-terminal-emulator

Usage

Start the CLI: ssm-connect

Connection Flow

  1. Choose Target Type:

    • [1] EC2 - Connect directly to an EC2 instance
    • [2] RDS - Forward port to an RDS database via bastion
  2. For EC2 Connections:

    • Choose connection type:
      • [1] SSM - Interactive shell via Session Manager
      • [2] SSH over SSM - SSH session with your private key
    • Filter and select target EC2 instance
    • For SSH: Provide private key path and username
  3. For RDS Connections:

    • Step 1: Select EC2 bastion instance (must have SSM access)
    • Step 2: Select target RDS database
    • Connect to localhost:[auto-selected-port] with your database client

Troubleshooting

Command not found

Ensure aws, session-manager-plugin, and ssh are installed and on PATH.

SSO expired

Refresh your AWS SSO session: aws sso login --profile your-profile

SSH key errors

Ensure the key exists and has proper permissions

No terminal found (Linux)

Install a terminal emulator

RDS connection refused

Ensure:

  • The bastion EC2 instance has network connectivity to the RDS
  • The bastion is running
  • You have the appropriate role

Uninstall

pip uninstall ssm-connect

Contributing

Issues and pull requests are welcome. Please keep changes focused and include brief notes if behavior changes.

License

Apache License 2.0. See LICENSE for details.

Project details


Download files

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

Source Distribution

ssm_connect-1.0.4.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

ssm_connect-1.0.4-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file ssm_connect-1.0.4.tar.gz.

File metadata

  • Download URL: ssm_connect-1.0.4.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ssm_connect-1.0.4.tar.gz
Algorithm Hash digest
SHA256 f70adb7e1c22c1c1f9dfdb8ed6c3f35c9ed33505b85def6344ed0d543b5265b5
MD5 360afc35988ace60c984a980d55651f3
BLAKE2b-256 2427c763c1ef460bf7b1d13f60cb89d6d52d2a01ddf09f62a828966277c16b6c

See more details on using hashes here.

File details

Details for the file ssm_connect-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: ssm_connect-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ssm_connect-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7f6651c178b2332099ffa91d74cf8db2c8aa06b796f8d0f1604deacbba7b94bd
MD5 4229552544a9b7b58c23176172145c62
BLAKE2b-256 1c0ae156edde993c48a97ea988c5a7a654f3b5dc45317edc1b950d736865e490

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 Pingdom Monitoring Sentry Error logging StatusPage Status page