SSM is a CLI utility that attempts to provide a better SSH experience by providing a wrapper for OpenSSH's ssh command. It does so through a simplified interface with some sensible defaults that automatically generates and executes OpenSSH's ssh command in the background. The defaults chosen by SSM can be overridden for all hosts using a TOML based configuration file, or on a per-host basis through flags.
This tool also provides some additional functionality that is difficult or impossible to achieve through a typical SSH config file. This includes functionality such as dynamic FQDN completion and password autofill through the use of sshpass.
This is a port/re-imagining of my original Python implementation which can be found here: Malathair's Python Simple SSH Manager
Additional software needed to use SSM
- OpenSSH SSH client
SSM can be installed using the go installer by running the following command:
go install github.com/malathair/ssm@latestBy using the standalone installer script:
curl https://raw.githubusercontent.com/malathair/ssm/refs/heads/main/install.sh | shOr by downloading the latest precompiled binary
SSM expects the configuration file called ssm.conf to exist in the current working
directory or in the user's config home dir.
An example configuration file can be found here: examples/ssm.conf
To update SSM, simply copy the latest ssm binary over the existing binary on your system. This can be done by either running the installer script, or by downloading the latest precompiled binary
SSM can be uninstalled by running:
rm $(which ssm)