A web-based ssh console to execute commands and manage multiple EC2 instances simultaneously running on Amazon Web Services (AWS). EC2Box allows you to share terminal commands and upload files to all your EC2 instances. Once the sessions have been opened you can select a single EC2 instance or any combination to run your commands. Also, additional instance administrators can be added and their terminal sessions and history can be audited.
Java JDK 1.7 or greater http://www.oracle.com/technetwork/java/javase/overview/index.html
Browser with Web Socket support http://caniuse.com/websockets
**Note: In Safari if using a self-signed certificate you must import the certificate into your Keychain. Select 'Show Certificate' -> 'Always Trust' when prompted in Safari
Maven 3 or greater ( Only needed if building from source ) http://maven.apache.org
-
Install FreeOTP or Google Authenticator to enable two-factor authentication with Android or iOS
Application Android iOS FreeOTP Google Play iTunes Google Authenticator Google Play iTunes
If you're not big on the idea of building from source...
Download ec2box-jetty-vXX.XX.tar.gz
https://github.com/skavanagh/EC2Box/releases
Export environment variables
for Linux/Unix/OSX
export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH
for Windows
set JAVA_HOME=C:\path\to\jdk
set PATH=%JAVA_HOME%\bin;%PATH%
Start EC2Box
for Linux/Unix/OSX
./startEC2Box.sh
for Windows
startEC2Box.bat
How to Configure SSL in Jetty (it is a good idea to add or generate your own unique certificate)
http://wiki.eclipse.org/Jetty/Howto/Configure_SSL
Export environment variables
export JAVA_HOME=/path/to/jdk
export M2_HOME=/path/to/maven
export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH
In the directory that contains the pom.xml run
mvn package jetty:run
**Note: Doing a mvn clean will delete the H2 DB and wipe out all the data.
Administrative access can be restricted through the use of tags defined in a user's profile. Profile tags must correspond to the instance tags that have been set through the AWS console.
Tags work on a name or name/value pair.
for example
tag-name
tag-name=mytag
or multiple
tag-name1,tag-name2
tag-name1=mytag1,tag-name2=mytag2
Open browser to https://<whatever ip>:8443
Login with
username:admin
password:changeme
Steps:
- Set your AWS credentials
- Import the private key used on your EC2 systems (note: The EC2 server will only show if the private key has been imported)
- Start composite-ssh sessions or create and execute a script across multiple sessions
- Add instance administrator accounts
- Audit sessions for instance administrators
Special thanks goes to these amazing projects which makes this (and other great projects) possible.
Sean Kavanagh
(Follow me on twitter for release updates, but mostly nonsense)