A command-line tool for managing SSH connections and port forwarding written in Go.
- Store and manage SSH connections with easy-to-remember slugs
- Support for SSH key paths and commands (like
pass
) - Port forwarding management
- SFTP support
- Interactive command prompt
- Zsh completion
# Clone the repository
git clone https://github.com/piotr-woojcik/ssh-manager.git
cd ssh-manager
# Build and install
go install ./cmd/ssh-manager
Add to your ~/.zshrc if not already present:
autoload -U compinit; compinit
Generate completion script:
ssh-manager zsh-completion > "${fpath[1]}/_ssh-manager"
ssh-manager add
# Follow the interactive prompts:
# - Enter slug (e.g., 'prod-server')
# - Enter address (e.g., 'example.com')
# - Enter user (e.g., 'admin')
# - Enter SSH key path or command (e.g., '~/.ssh/id_rsa' or 'pass show ssh/key')
# - Is this a command? (y/n)
ssh-manager forward-port [slug]
# Enter local and remote ports when prompted
ssh-manager ls
ssh-manager connect [slug] # SSH connection
ssh-manager connect-sftp [slug] # SFTP connection
ssh-manager edit [slug]
ssh-manager delete [slug]
All data is stored in ~/.ssh-manager/
:
- SQLite database:
~/.ssh-manager/ssh-manager.db