A web-based ssh console to execute commands and manage multiple systems simultaneously. KeyBox allows you to share terminal commands and upload files to all your systems. Once the sessions have been opened you can select a single system or any combination to run your commands. Additional system administrators can be added and their terminal sessions and history can be audited. Also, KeyBox can manage and distribute public keys that have been setup and defined.
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
If your not big on the idea of building from source...
Download keybox-jetty-vXX.XX.tar.gz
https://github.com/skavanagh/KeyBox/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 KeyBox
for Linux/Unix/OSX
./startKeyBox.sh
for Windows
startKeyBox.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.
KeyBox generates its own public/private SSH key upon initial startup for use when registering systems. You can specify a custom SSH key pair though the KeyBoxConfig.properties file. This file is located in the jetty/keybox/WEB-INF/classes directory. (or the src/main/resources directory if building from source)
For example:
#set to true to regenerate and import SSH keys --set to true
resetApplicationSSHKey=true
#SSH Key Type 'dsa' or 'rsa'
sshKeyType=rsa
#private key --set pvt key
privateKey=/Users/kavanagh/.ssh/id_rsa
#public key --set pub key
publicKey=/Users/kavanagh/.ssh/id_rsa.pub
#default passphrase --leave blank if passphrase is empty
defaultSSHPassphrase=myPa$$w0rd
Open browser to https://<whatever ip>:8443
Login with
username:admin
password:changeme
Steps:
- Create systems
- Create profiles
- Assign systems to profile
- Assign profiles to users
- Users can login to create sessions on assigned systems
- Start a composite SSH session or create and execute a script across multiple sessions
- Add additional public keys to systems
- Audit session history
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)