Streamline SSH with a simple Terminal UI
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
- 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 establishedssm --show
orctrl+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.
<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
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
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
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
- SSH config manual
- SSH config example
- create SSH config script
- message me on X
- message me on Telegram
Pull requests are very welcome and will be merged.
Feature requests are also welcome, we're happy to implement your ideas.
If
ssm
is useful to you, kindly give us a star.
-
star the repo
-
tell your friends