Thanks to visit codestin.com
Credit goes to github.com

Skip to content

MatteoGauthier/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 designed to help engineers organize servers, connect, filter, tag, and much more from a simple terminal interface.

tl;dr - try it now

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

Features

  • vim keys: jkhl, ctrl+d/u, g/G
  • emacs keys: ctrl+p/n/b/f
  • filter through all your servers
  • simple connect and return flow
  • switch between SSH and MOSH with a tab
  • ctrl+v shows all config params for selected host
  • ctrl+e to edit the loaded config
  • config will automatically reload on change
  • CLI short-flags support e.g. ssm -se enables --exit and --show
  • 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

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+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 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

# 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://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

# 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

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.

Support

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

About

Streamline SSH with a simple Terminal UI

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 78.3%
  • Shell 15.7%
  • Makefile 6.0%