Overview
suSHi allows you to centrally manage all your SSH machines in one place. Store connection details securely, organize machines by purpose, and connect with a single click.Machine Properties
Each machine in suSHi stores the following information:- Basic Information
- Authentication
- Organization
Required fields:
- Name: Friendly identifier for the machine (e.g., “Production Server”)
- Hostname: IP address or domain name (e.g.,
192.168.1.100orserver.example.com) - Port: SSH port number (typically
22) - Username: SSH login username
All sensitive data (private keys, passphrases, passwords) is encrypted using AES-256-CFB before storage. See Security for details.
Adding a Machine
Via Dashboard
Configure Authentication
Choose between private key or password authentication:
- For private key: Paste your private key content
- For password: This will be requested during connection
API Request
You can also add machines programmatically:API Response
API Response
Viewing Machines
Machine List
The machine dashboard shows all your machines with:- Machine name and hostname
- Username and port
- Organization (if set)
- Quick action buttons (Connect, Edit, Delete)
Only basic information is displayed in the list view. Sensitive credentials are never shown in the UI.
Machine Details
Click on any machine to view detailed information:Filtering and Search
Organize your machines:- Search by name: Find machines quickly
- Filter by organization: View machines by team or project
- Sort by date: See recently added or modified machines
Connecting to Machines
To establish an SSH session:Connection Flow
The connection process uses your master password to decrypt stored credentials, then establishes a fresh SSH connection to the machine.
Deleting Machines
Delete via Dashboard
- Find the machine in your list
- Click the Delete button (trash icon)
- Confirm deletion when prompted
Delete via API
Security Considerations
Credential Encryption
All private keys and passphrases are encrypted with AES-256-CFB using PBKDF2 key derivation.
Password Protection
Your master password is never stored. It’s required to decrypt credentials at connection time.
User Isolation
You can only access machines you own. JWT authentication ensures proper authorization.
Audit Trail
All machine operations (create, connect, delete) are logged for security auditing.
Machine Ownership
Machines are owned by users or organizations:user: Personal machines (default)organization: Shared team machines (future feature)
Currently, all machines are user-owned. Organization-level sharing is planned for future releases.
API Reference
Create Machine
Endpoint:POST /api/machines
Request Body:
Get All Machines
Endpoint:GET /api/machines
Response:
Get Single Machine
Endpoint:GET /api/machines/:id
Response: Same as individual machine object above
Connect to Machine
Endpoint:POST /api/machines/:id/connect
Request Body:
Delete Machine
Endpoint:DELETE /api/machines/:id
Response:
Best Practices
Use SSH Keys Over Passwords
Use SSH Keys Over Passwords
SSH keys are more secure than passwords and support additional encryption with passphrases.Generate a key pair:Then copy the private key content to suSHi.
Organize with Meaningful Names
Organize with Meaningful Names
Use descriptive names that help you identify machines quickly:
- Good: “Production API Server”, “Dev Database”
- Bad: “Server1”, “Machine2”
Group by Organization
Group by Organization
Use the organization field to group related machines:
- “Production”
- “Staging”
- “Client: Acme Corp”
- “Personal Projects”
Regular Credential Rotation
Regular Credential Rotation
Periodically update SSH keys and passwords:
- Generate new credentials on remote machines
- Update machine entries in suSHi
- Remove old credentials
Troubleshooting
Cannot connect to machine
Cannot connect to machine
Common causes:
- Incorrect hostname or port
- Firewall blocking SSH traffic
- Wrong username or credentials
- Machine is offline
- Verify machine is reachable:
ping hostname - Test SSH directly:
ssh username@hostname -p port - Check firewall rules on remote machine
- Verify credentials are correct
Authentication failed
Authentication failed
Common causes:
- Wrong master password for decryption
- Private key doesn’t match authorized_keys
- Key passphrase incorrect
- Double-check your master password
- Verify the private key matches public key on remote
- Test key locally:
ssh -i private_key username@hostname - Check remote machine’s
/var/log/auth.logfor details
Machine not found in database
Machine not found in database
Cause: Machine ID doesn’t exist or you don’t have permissionSolutions:
- Verify the machine ID is correct
- Check that you’re logged in with the right account
- The machine may have been deleted
Next Steps
Web Terminal
Learn how to use the browser-based terminal
Security
Understand how credentials are encrypted and protected