Sshman is a terminal-based SSH manager built with Ruby that simplifies managing your SSH connections. It enables you to easily add, edit, delete, and connect to servers with just a few commands. The tool supports SSH keys and passwords and secures your configuration with restricted file permissions.
- Add SSH server configurations
 - List all saved servers in a neatly formatted table
 - Edit existing server configurations
 - Delete server entries by alias
 - Connect to servers via SSH in a single command
 - Security: Restricts file permissions to protect SSH keys
 - User-friendly CLI: Interactive, colorized terminal-based interface with built-in help
 - SSH-key generation: Easy fool proof ssh-key generation
 
Install the gem locally or globally:
gem install sshman###From Source
Clone the repository:
git clone https://github.com/subnetmasked/sshman.git
cd sshmanBuild and install the gem:
gem build sshman.gemspec
gem install ./sshman-X.X.X.gem --user-installAfter installing the gem, you can use the sshman command to manage your SSH servers.
Inline Commands You can now run commands directly:
- sshman list - List all saved servers
 - shman add - Add a new server configuration
 - sshman edit - Edit an existing server
 - sshman delete - Delete a server by its alias
 - sshman connect - Connect to a server by its alias
 - sshman help - Display help information
 
Simply run:
sshmanThis will launch the interactive menu where you can add, edit, delete, or connect to servers interactively.
- Add SSH server configurations✅
 - List all saved servers in a neatly formatted table✅
 - Edit existing server configurations✅
 - Delete server entries by alias✅
 - Connect to servers via SSH in a single command✅
 - Security: Restricts file permissions to protect SSH keys✅
 - User-friendly CLI: Interactive, colorized terminal-based interface with built-in help✅
 - Session logging and replay✅
 - SSH key generation✅
 - Remote script execution⏳
 - Multi-factor authentication (MFA) support⏳
 - Automated server health checks⏳
 - Dashboard for server status⏳
 - Customizable connection profiles⏳
 - Import/export server configurations⏳
 - Batch operations on multiple servers⏳
 
Contributions, issues, and feature requests are welcome! Feel free to check the issues page to report bugs or request features.
- Fork the project
 - Create your feature branch: git checkout -b my-new-feature
 - Commit your changes: git commit -m 'Add some feature'
 - Push to the branch: git push origin my-new-feature
 - Submit a pull request
 
This project is licensed under the GNU General Public License (GPL-3.0) - see the LICENSE file for details.
If you have any questions or need further clarification, feel free to open an issue or reach out to me at subnetmasked@cock.li.