SSH Config Autocomplete¶
Quickly create tunnels from your existing SSH config hosts.
Overview¶
StormTunnel reads your ~/.ssh/config file and lets you select hosts directly when creating tunnels. This saves time and ensures consistency with your existing SSH setup.
| Feature | Description |
|---|---|
| Host Selection | Pick from saved SSH hosts in a dropdown menu |
| Auto-populate | Fill tunnel fields automatically from config |
| Key Matching | Link identity files to imported keys |
| Port Forwarding | Import LocalForward settings from config |
Using SSH Config Hosts¶
Creating a Tunnel from SSH Config¶
- Click Add Tunnel (or Cmd+N)
- In the Name field, click the server icon button
- Select a host from the dropdown menu
- Fields are automatically populated from your SSH config
What Gets Populated¶
When you select an SSH config host, StormTunnel fills in:
| Field | Source in SSH Config |
|---|---|
| Tunnel Name | Host alias |
| Tunnel Type | Set to SSH |
| SSH Hostname | Host alias (SSH resolves) |
| Username | User directive |
| SSH Port | Port directive |
| Local Port | LocalForward (local) |
| Remote Host | LocalForward (remote) |
| Remote Port | LocalForward (port) |
| SSH Key | IdentityFile (matched) |
SSH Config Format¶
StormTunnel supports standard SSH config directives:
Host my-server
HostName 192.168.1.100
User admin
Port 2222
IdentityFile ~/.ssh/my-key
LocalForward 8080 localhost:80
Supported Directives¶
| Directive | Description |
|---|---|
Host | Alias name (appears in dropdown) |
HostName | Actual server address |
User | SSH username |
Port | SSH port (default: 22) |
IdentityFile | Path to SSH private key |
LocalForward | Port forwarding configuration |
Wildcard Patterns¶
Hosts with wildcard patterns (*, ?) are excluded from the dropdown since they don't represent specific servers:
# These appear in the dropdown
Host production-db
Host staging-api
# These are excluded (wildcards)
Host *
Host *.example.com
Keyboard Navigation¶
When the suggestion popover appears:
| Key | Action |
|---|---|
| Down | Move to next suggestion |
| Up | Move to previous |
| Enter | Select highlighted host |
| Esc | Close suggestions |
Identity File Matching¶
If your SSH config specifies an IdentityFile, StormTunnel attempts to match it with your imported SSH keys:
- StormTunnel reads the
IdentityFilepath from config - Searches imported keys for a matching file path
- If found, automatically selects that key for authentication
Import Keys First
For automatic key matching to work, import your SSH keys via SSH Key Management (Cmd+K) before creating tunnels.
Troubleshooting¶
No Hosts in Dropdown¶
- Check config location: StormTunnel reads
~/.ssh/config - Verify file permissions: Config must be readable
- Check syntax: Ensure valid SSH config format
- Restart app: Changes require app restart to reload
Host Not Appearing¶
- Check for wildcards: Hosts with
*or?are excluded - Verify Host line: Must have
Host aliasformat - Check for duplicates: Each alias must be unique
Fields Not Populating¶
- Check directive spelling: Case-insensitive but must be valid
- Verify directive format:
Key valuewith space separator - Check for comments: Lines starting with
#are ignored
Identity File Not Matching¶
- Import the key first: Use SSH Key Management
- Check path match: Paths must match exactly
- Expand tildes:
~/.ssh/keyexpands to full path
Best Practices¶
- Organize SSH config: Use descriptive Host aliases
- Import keys first: Enable automatic key matching
- Use LocalForward: Pre-configure port forwarding in SSH config
- Keep config updated: StormTunnel reads on app launch
Example SSH Config¶
# Development server
Host dev
HostName dev.example.com
User developer
IdentityFile ~/.ssh/dev-key
# Production database tunnel
Host prod-db
HostName bastion.example.com
User admin
Port 2222
IdentityFile ~/.ssh/prod-key
LocalForward 5432 db.internal:5432
# Staging API
Host staging-api
HostName staging.example.com
User deploy
LocalForward 8080 localhost:3000
Related¶
- SSH Key Management - Import and manage SSH keys
- Creating Tunnels - Full tunnel creation guide
- Authentication - SSH authentication methods