KeyBox

A web-based SSH console that executes commands on multiple shells. KeyBox allows you to manage keys, share terminal commands, and upload files to multiple systems simultaneously.

View on Github » Download Latest »

Easy Install & Setup

Requires JDK 1.7 or greater
A web socket supported browser

View README »

Contact

Do you have questions or ideas?
Feel free to reach out.

If you find these projects useful please feel free to contribute, spread the word, or take a look at my Amazon wishlist

Twitter Email


About KeyBox

KeyBox generates its own public/private SSH key upon initial startup (To specify a custom SSH key pair, see here). This key is placed in the authorized_key file of any systems that are registered. KeyBox allows you to share terminal commands and upload files to all your systems, allowing access through the application. 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.

Composite SSH Terminals

Composite SSH terminals. Total control.

Execute commands on multiple systems simultaneously. Upload files to selected systems. Once the sessions have been opened you can select a single system or any combination to run your commands.

Select Invidual Terminals

Two-Factor Authentication. Secure your users.

Supports Two-Factor via FreeOTP or Google Authenticator on your Android or iOS device.

FreeOTP
Android Google Play
iOS iTunes
Google Authenticator
Android Google Play
iOS iTunes
Two-Factor Authentication

Control user access. Secure your systems.

Create users and assign them system profiles. Users can login to KeyBox via the web-console, but have limited privileges and can only access systems that have been assigned in their profile.

Manage Users

Manage & distribute public SSH keys

KeyBox works through the authorized_keys file on systems that are registered. Assign and manage public SSH keys for users. Define keys and apply them to all systems or a system profile.

Manage SSH Public Keys

Audit SSH sessions

Users with full-privileges may audit other administrative user sessions. Ensure systems are managed within organizational guidelines.

Audit SSH Sessions

Why KeyBox?

Some of the ideas that I've been trying to explore with this project...

  • Centralized user control - Grant access to systems through administrative profiles and user accounts.
  • Auditable (experimental) - Audit the administrative activity on the systems. Prevents malicious users from deleting history or logs.
  • Prevent SSH key sprawl and access mismanagement - Manage public SSH keys, assign keys to systems through profiles, and distribute keys to systems.
  • Productivity - Instead of making the same changes on systems individually, share commands across systems. Eliminates redundancy when patching or debugging issues.
  • Portability - Run SSH through the browser without requiring client software.
  • Infrastructure protection - A hardened version of KeyBox could act as a bastion host allowing for centralized administration through SSH, proxying traffic into a DMZ or perimeter network. (see diagram)

Audit SSH Sessions

EC2Box

A web-based SSH console to execute commands and manage multiple EC2 instances simultaneously running on Amazon Web Services (AWS).

View on Github »

EC2Box: Web-based SSH console for AWS EC2

KeyBox-OpenShift

A web-based SSH console for OpenShift. Connect and share terminal commands on multiple gears simultaneously.

View on Github »

KeyBox-OpenShift: Web-based SSH console for OpenShfit