Skip to content

Latest commit

 

History

History
86 lines (65 loc) · 1.57 KB

README.md

File metadata and controls

86 lines (65 loc) · 1.57 KB

SSH Manager

A command-line tool for managing SSH connections and port forwarding written in Go.

Features

  • 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

Installation

From Source

# Clone the repository
git clone https://github.com/piotr-woojcik/ssh-manager.git
cd ssh-manager

# Build and install
go install ./cmd/ssh-manager

Shell Completion (zsh)

Add to your ~/.zshrc if not already present:

autoload -U compinit; compinit

Generate completion script:

ssh-manager zsh-completion > "${fpath[1]}/_ssh-manager"

Usage

Adding a Connection

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)

Adding Port Forwarding

ssh-manager forward-port [slug]
# Enter local and remote ports when prompted

Listing Connections

ssh-manager ls

Connecting

ssh-manager connect [slug]    # SSH connection
ssh-manager connect-sftp [slug]  # SFTP connection

Editing a Connection

ssh-manager edit [slug]

Deleting a Connection

ssh-manager delete [slug]

Configuration

All data is stored in ~/.ssh-manager/:

  • SQLite database: ~/.ssh-manager/ssh-manager.db

License

MIT License