SysTeam.pl / Products / sshmgr

sshmgr

modern SSH manager

Your fleet, one terminal

Modern SSH connection manager for the terminal. Full CLI + TUI in a single Go binary. Jump hosts, OS-keyring login chains, port forwarding, parallel exec across host fleets, and native Ansible integration.

What it looks like

Launch with sshmgr ui. Tab switches between a tree grouped by each host's primary group and the flat table shown here: alias, host, tags and last use, each in its own colour, plus reachability history for the selected host.

sshmgr ui
 sshmgr v0.1.0 by SysTeam  ·  ~/.config/sshmgr/config.yaml  ·  catppuccin  ·  373 hosts
╭─ hosts (flat) ───────────────────────────╮╭─ web-eu-01 ────────────────────────╮ALIAS       HOST           TAGS  LAST   ││  online · native · 2 fwd          │
│ web-eu-01   web-eu-01      fleet  2h   ││ ────────────────────────────────── │
│  web-eu-02   web-eu-02      fleet  5h   ││ AVAILABILITY                       │
│  bastion-eu  bastion-eu     jump   1h   ││   ██████████  100%  10 rounds      │
│  db-eu-01    db-eu-01       db     3d   ││ ────────────────────────────────── │
│  web-us-01   web-us-01      fleet    ││ CONNECTION                         │
│  cache-eu-01 cache-eu-01    cache  9h   ││   gn@web-eu-01:12344               │
│                                          ││   ~/.ssh/id_ed25519                │
│                                          ││   jump  bastion-eu                 │
│                                          ││ ────────────────────────────────── │
│                                          ││ MEMBERSHIP                         │
│                                          ││   fleet   #fleet #eu╰──────────────────────────────────────────╯╰────────────────────────────────────╯
 flat  ·  sort name  ·  373 hosts
  Enter  shell   s  sftp   f  files   p  fwd   x  exec   m  anim   ?  help   q  quit  

What sshmgr does

Built for teams that manage dozens or hundreds of SSH hosts through jumphost bastions, Duo MFA, and multi-step sudo

CLI + TUI, one binary

Full terminal UI with host tree, live status indicators, and connection menus — plus a scriptable CLI for pipelines. Single Go binary, no daemons.

Login chains with OS keyring

Multi-step SSH login (su, sudo, jumphost) with passwords from OS keyring (Secret Service, macOS Keychain), env vars, custom commands, or interactive prompts.

Port forwarding & file transfer

-L / -R / -D SOCKS5 + X11 + agent forwarding. Built-in SCP / SFTP / 2-pane file manager sharing the same connect chain (proxy_jump, bastions, all auth backends).

Parallel exec on fleets

sshmgr exec --group fleet 'uptime' — N hosts in parallel with bounded concurrency, prefixed output, pass/fail summary, retries, --diff, --json.

Ansible integration

export ansible turns the fleet into an inventory (resolving bastion chains and proxy hops for you). playbook subcommand runs ansible-playbook against any selector.

sshmgr lint

Catches broken proxy_jump refs, missing key files, snippet collisions, and undefined groups before you ever hit them at connect time.

Snippets per host or group

Saved one-liners picked from a TUI menu or run from the CLI: sshmgr alias :name. Inherited from groups, shareable from reusable file libraries.

Session recording

Optional tee of the remote shell to a per-session log file for audit, replay, and post-mortem troubleshooting. No black boxes.

3 colour themes

Default (aqua), hacker (matrix green), cyberpunk (neon). Live host status (UP / DOWN / DEGRADED) visible in the TUI without a manual refresh.

Quick install

Linux or macOS, Go 1.26+. Windows works in theory but isn't tested.

$ git clone https://github.com/systeampl/sshmgr.git
$ cd sshmgr
$ go build -o sshmgr .
$ sudo install -m 0755 sshmgr /usr/local/bin/sshmgr

$ sshmgr ui             # launch the TUI
$ sshmgr <alias>        # connect to a host (CLI default)
$ sshmgr --help         # list all CLI commands

Full README on GitHub →

Try sshmgr on your fleet

MIT-licensed open source. No user accounts, no telemetry, no daemons. Clone, build, use. Issues and pull requests welcome.