Skip to content
/ ssm Public

Streamline SSH with a simple Terminal UI

License

Notifications You must be signed in to change notification settings

lfaoro/ssm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Secure Shell Manager

Streamline SSH with a simple Terminal UI

version license go report card follow on x

SSM is an SSH connection manager that helps engineers organize servers, connect, filter, tag, execute commands (soon), transfer files (soon), and much more from a simple terminal interface.

tl;dr - try it now

demo

Features

  • vim keys navigation: jkhl, ctrl+d/u, g/G
  • filter through all your servers
  • simple connect and return flow
  • switch between SSH and MOSH with a tab
  • quickly edit configs <ctrl+e>
  • auto-reload SSH config on change
  • extend config with #tag:, e.g.: $ ssm admin will show only #tag: admin hosts
  • ssm --exit will exit ssm after a connection is established
  • ssm --show or ctrl+v in the UI, will show config params for the selected host
  • shortflags support e.g. ssm -se vpn

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

Keys

<enter↵>       connect to selected host
<ctrl+v>       show config for selected host
<ctrl+e>       edit ssh configs
<tab>          switch between SSH/MOSH
< / >          filter hosts
<q or esc>     quit

# under development (coming soon)
ctrl+r         run commands on the server without starting a pty 
ctrl+s         sftp upload/download files to/from server 
ctrl+p         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
Host hostname1
#tag: tagValue1,tagValue2,tagValueN
    User user
    HostName hello.world
    Port 2222
    IdentityFile ~/.ssh/id_rsa

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

Host segfault.net
#tag: research
    User root
    HostName segfault.net
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

# bash one-liner
curl -sSL https://raw.githubusercontent.com/lfaoro/ssm/refs/heads/main/scripts/get.sh | bash
wget -qO- https://raw.githubusercontent.com/lfaoro/ssm/refs/heads/main/scripts/get.sh | bash

Build

requires Go

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

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

Help

Contributors

See all

Pull requests are very welcome and will be merged.
Feature requests are also welcome, we're happy to implement your ideas.

Support SSM

If ssm is useful to you, kindly give us a star.