Skip to content

Conversation

@alwoodm
Copy link
Owner

@alwoodm alwoodm commented Nov 27, 2025

Description

This PR introduces MySSH, a robust CLI application designed to simplify managing and connecting to SSH hosts. It provides a secure, interactive, and efficient way to handle multiple hosts and users, complete with activity tracking and "fast path" commands for power users.

Key Features

🔐 Secure Host & User Management

  • Multi-User Support: Create hosts and assign multiple users to them (e.g., admin, deployer, root).
  • Encryption: All passwords are securely encrypted in the local SQLite database using Laravel's encryption services.
  • Interactive Management:
    • host:add: Interactive wizard to create new hosts.
    • host:edit: Comprehensive menu to update aliases, hostnames, and manage users (add/edit/delete).
    • host:delete: Safely remove hosts or specific users.

🚀 Smart Connectivity

  • Last Login Tracking: The app tracks when you last connected to a host/user.
  • Smart Sorting: Hosts and users are automatically sorted by recency—your most frequently used connections are always at the top.
  • Multiple Strategies: Automatically attempts connection via sshpass, falls back to clipboard copy (macOS), or manual entry.

⚡️ Power User Workflow ("Fast Arguments")

Skip the menus with direct arguments for every command:

  • myssh connect homelab root (Connect immediately)
  • myssh host:edit homelab (Jump to host settings)
  • myssh host:edit homelab root (Jump to user settings)
  • myssh host:delete homelab root (Delete a specific user)

Walkthrough: The "Happy Path"

Here is a typical lifecycle of using MySSH:

1. Setup a new environment

myssh host:add homelab 10.10.10.2 admin

2. Add another user to the same host

# Add 'root' user to 'homelab'
myssh user:add homelab root

3. Connect to the server

# Connects as 'admin' (most recent/default) or prompts for selection
myssh connect homelab

# OR connect directly as root
myssh connect homelab root

4. Check your activity

# See all hosts and when you last logged in
myssh host:list

Output:

Alias Hostname Users Last Login
homelab 192.168.1.50 admin, root 1 minute ago

5. Maintenance

# Update the hostname or change a password
myssh host:edit homelab

# Remove an old user
myssh host:delete homelab root

@alwoodm alwoodm merged commit 8a28b9c into main Nov 27, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants