Skip to content

alwoodm/my-ssh

Repository files navigation

My-SSH Status

PHP Laravel Zero SQLite

My-SSH is a powerful, secure, and user-friendly CLI tool for managing SSH connections. Built with Laravel Zero, it simplifies your workflow by organizing hosts, users, and connection details in one place.

Features

  • 🚀 Fast & Intuitive: Connect to your servers with a single command.
  • 🔒 Secure: All sensitive data (passwords) is encrypted using AES-256-CBC with a unique key per installation.
  • 📂 Organized: Manage multiple hosts and users effortlessly.
  • ⚡️ Quick Actions: fast arguments support for rapid management.

Installation

Homebrew (Recommended)

You can easily install My-SSH using Homebrew.

brew tap alwoodm/tap
brew install myssh

Manual Installation

Alternatively, you can download the latest binary from the Releases page.

# Move the binary to your path
mv myssh /usr/local/bin/myssh
chmod +x /usr/local/bin/myssh

Usage

Managing Hosts

Add a new host to your inventory:

myssh host:add

List all available hosts:

myssh host:list

Edit an existing host:

myssh host:edit <alias>

Remove a host:

myssh host:delete <alias>

Managing Users

Add a user to a specific host:

myssh user:add <host_alias>

Remove a user from a host:

myssh user:delete <host_alias> <username>

Connecting

Connect to a host using its alias. If multiple users are defined, you will be prompted to select one.

myssh connect <alias>
# or simply
myssh <alias>

Other Commands

  • myssh list: Show all available commands.

Security

Your data is stored locally in ~/.myssh/database.sqlite. A unique encryption key is generated on first run and stored in ~/.myssh/.key. Keep this key safe! Without it, your encrypted passwords cannot be recovered.

Development

If you want to contribute or run the project locally, feel free to fork this repository or create a new branch.

  1. Clone the repository:

    git clone https://github.com/alwoodm/my-ssh.git
    cd my-ssh
  2. Install dependencies:

    composer install
  3. Setup environment:

    cp .env.example .env
    touch database/database.sqlite
    php myssh key:generate
  4. Run the application:

    php myssh list

License

My-SSH is open-sourced software licensed under the MIT license.