awssh is an AWS SSH config generator tool written in Python.
Perhaps you've encountered this because you're sick of checking the AWS console to find the public DNS of the particular machine you're working with. Perhaps it's because you work with dozens or hundreds of machines on AWS and simply can't keep track of them. Or perhaps it's out of shame from remembering the actual AWS-provided name for your instances.
It's the future, and we can use ssh config. So, where's my flying car?
You'll need python's setuptools:
# On Linux:
sudo apt-get install python-setuptools
# Or, alternatively
sudo yum install python-setuptools
# On Mac
sudo port install py-setuptools
With that installed, you're ready to rock-and-or-roll!
sudo python ./setup.py install
This package uses boto, which checks for a configuration file ~/.boto. You can add your access ID and secret key to that file such:
aws_access_key_id = < your id here >
aws_secret_access_key = < you get the picture >
If a remote instance uses keypair production, then this package assumes that your keyfile resides locally at ~/.ssh/production.
What it is and does
A quick way to get a list of all your instances by name, and automatically set up your ~/.ssh/config to enable you to log into your EC2 instances by name. A few things to keep in mind:
1. It will not clobber information in existing ssh config
2. Be that as it may, it does not preserve order
3. It does preserves comments
4. Saves a backup copy at ~/.ssh/config.bak
5. Assumes key name production lives at ~/.ssh/production
6. It is interruptable without corrupting ~/.ssh/config