xen0l/aws-gate

Created Dec 28, 2020 · View the xen0l/aws-gate repository page

Better AWS SSM Session manager CLI client

Want this for your repo?

Render a free sample of any GitHub repo in seconds.

Visualize your own →

Contributors

13

Lines of Code

622

From

Nov 18, 2018

To

Dec 28, 2020

About xen0l/aws-gate

aws-gate is a Python command-line tool that provides an improved interface to Amazon's AWS Systems Manager Session Manager, which allows secure shell access to EC2 instances without managing bastion hosts or distributing SSH keys. The project addresses limitations in the native AWS CLI by enabling users to connect to instances through multiple identifiers like DNS names, IP addresses, tags, instance names, and autoscaling group names, rather than requiring instance IDs.

The tool supports configuration files in YAML format stored at ~/.aws-gate/config and config.d directories, allowing users to save connection details and default settings for frequently accessed instances. It also integrates with SSH by supporting SSH ProxyCommand functionality, which can tunnel SSH sessions through Session Manager and automatically generate ephemeral SSH keys via EC2 Instance Connect. Users can perform standard SSH operations like opening shells, executing commands, and forwarding local ports to remote services.

aws-gate requires Python 3.5 or later, the AWS session-plugin-manager, and SSM Agent 2.3.68.0 or later on target EC2 instances. It can be installed via pip, Homebrew, or Docker, and includes debugging capabilities through the GATE_DEBUG environment variable. The project is licensed under the BSD License and targets AWS users seeking to eliminate traditional bastion host infrastructure while maintaining secure instance access through AWS identity and access management.

Share this video

More from xen0l

See all →