SSM(1)

NAME

ssmYour terminal SSH connection manager

SYNOPSIS

$go install github.com/lfaoro/ssm@latest

INFO

99 stars
5 forks
0 views

DESCRIPTION

Your terminal SSH connection manager

README

Secure Shell Manager

Streamline SSH connections with a simple Terminal UI

version license go report card follow on x

Scratching my own itch: ssm is an SSH connection manager designed to connect, filter, tag, and much more from a simple terminal interface. Works on top of installed command-line programs and does not require any setup on remote systems.

tl;dr - Install

See HELP for CLI flags.
See CHANGELOG for dev info.

demo

Features

  • vim keys: jkhl, ctrl+d/u, g/G
  • emacs keys: ctrl+p/n/b/f
  • ctrl+r run commands without spawning a TTY
  • ctrl+e edit the loaded config
  • config will automatically reload on change
  • ctrl+v show config next to servers
  • filter through all your servers: /
  • switch between SSH and MOSH with TAB
  • CLI short-flags support e.g. ssm -seo enables --show, --exit, and --order
  • group servers using tags e.g. #tag: admin
  • show only admin tagged servers ssm admin
  • use #tagorder key to prioritize tagged hosts in list-view
  • use --theme to change color scheme
  • edit themes.go to add more

Keys

<enter↵>       connect to selected host
<ctrl+e>       edit ssh config
<ctrl+v>       show all config params in sideview
<ctrl+r>       run commands on host w/o starting a tty 
<tab>          switch between SSH/MOSH
< / >          filter hosts
<q or esc>     quit

under development (coming soon)

ctrl+s sftp upload/download files to/from server ctrl+g port-forwarding UI space␣ select multiple hosts to interact with

Quickstart

If you're not accustomed to ssh config start here otherwise skip to Install

# backup any existing config
[ -f ~/.ssh/config ] && cp ~/.ssh/config ~/.ssh/config.bak
# create ssh config
cat <<EOF >>~/.ssh/config
# This is an example config for SSH

#tagorder is a key used to prioritize #tag: hosts in list-view

Host hostname1 #tag: tagValue1,tagValue2,tagValueN User user HostName hello.world Port 2222 IdentityFile ~/.ssh/id_rsa

Host segfault.net #tag: research User root HostName segfault.net

Host terminalcoffee #tag: shops User adam HostName terminal.shop EOF

file must have 600 perms for security

chmod 600 ~/.ssh/config

Install

Download ssm binary from releases

available for [Linux, MacOS, FreeBSD, NetBSD, OpenBSD, Solaris]
on [x86_64, i386, arm64, arm] architectures, need more? just ask

# verify the binary is signed with my key
gpg --verify ssm_sig ssm
# bash script install for linux|macos|freebsd|netbsd|openbsd|solaris
curl -sSL https://github.com/lfaoro/ssm/raw/main/scripts/get.sh | bash
wget -qO- https://github.com/lfaoro/ssm/raw/main/scripts/get.sh | bash

we don't pay Apple for a signing key, therefore you might need to run

xattr -d com.apple.quarantine ssm # on MacOS

brew tap for macos/linux

brew install lfaoro/tap/ssm

Build

requires Go

# bootstrap
go install github.com/lfaoro/ssm@latest

build

git clone https://github.com/lfaoro/ssm.git
&& cd ssm
&& make
&& bin/ssm

build from sr.ht mirror

git clone https://git.sr.ht/~faoro/ssm
&& cd ssm
&& make
&& bin/ssm

make clean

clean everything even caches

make distclean

Help

Contributors

See all

Pull requests are very welcome and will be merged.
Report a bug or request a new feature, feel free to open a new issue.

Show support

If ssm is useful to you, please consider giving it a ⭐.

SEE ALSO

clihub3/4/2026SSM(1)