Skip to content

sshman is a terminal-based SSH manager built with Ruby.

License

Notifications You must be signed in to change notification settings

subnetmasked/sshman

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gem Version License: GPL v3

🚀 sshman: A Simple and Secure SSH Manager

sshmangif 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.

✨ Features

  • 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

📦 Installation

Using RubyGems

Install the gem locally or globally:

gem install sshman

###From Source

Clone the repository:

git clone https://github.com/subnetmasked/sshman.git
cd sshman

Build and install the gem:

gem build sshman.gemspec
gem install ./sshman-X.X.X.gem --user-install

🚀 Quick Start

After 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

Interactive Mode

Simply run:

sshman

This will launch the interactive menu where you can add, edit, delete, or connect to servers interactively.

sshman Roadmap

  • 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⏳

🤝 Contributing

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

📄 License

This project is licensed under the GNU General Public License (GPL-3.0) - see the LICENSE file for details.

💬 Questions?

If you have any questions or need further clarification, feel free to open an issue or reach out to me at [email protected].