sshelf

SSH connections in your terminal. Add servers once, connect with a couple of keystrokes.

NAME HOST USER PORT SHORTCUT DESCRIPTION
prod 192.168.1.10 ubuntu 22 prod Production
db db.example.com deploy 22 db Database
staging 10.0.0.5 admin 22 stg Staging server
backup backup.local root 22 bak Backups
jump jump.company.com jumper 22 Bastion host
[enter] connect [n] new [e] edit [d] delete [/] search [q] quit

What it does

No need to remember hostnames, users, or key paths. Run sshelf, pick a server, press Enter. Or use shortcuts: sshelf prod, sshelf db.

↑ ↓ j k move Enter connect n new e edit d delete / search q quit

Install

Homebrew (GitVerse)

brew tap khamdokhov/sshelf https://gitverse.ru/khamdokhov/homebrew-sshelf
brew install sshelf

From source (Go 1.21+)

git clone https://gitverse.ru/khamdokhov/sshelf.git && cd sshelf
go build -o sshelf .
mv sshelf /usr/local/bin/

Run

sshelf

Config

Connections are stored in a single JSON file. The directory is created on first save. You can edit it by hand, back it up, or put it in Dropbox/iCloud/git and symlink.

OS Path
macOS / Linux ~/.config/sshelf/connections.json
Windows %AppData%\sshelf\connections.json

Example connections.json:

{
  "version": "1",
  "connections": [
    {
      "name": "prod",
      "user": "ubuntu",
      "host": "192.168.1.10",
      "shortcut": "prod"
    }
  ]
}

Requirements

ssh in PATH. That's it.