Skip to content

elliot40404/ssm

Repository files navigation

SSM - Simple SSH Manager

 _____ _____ _____
|   __|   __|     |
|__   |__   | | | |
|_____|_____|_|_|_|

SSM - SIMPLE SSH MANAGER
                      - Elliot

About

I am learning Go and wanted to make something useful. I have a lot of servers that I need to SSH into and I wanted a way to manage them, so I decided to make a simple SSH manager.

NOTE This is still a work in progress so there may be bugs. Please feel free to report them

Installation

go install github.com/elliot40404/ssm/cmd/ssm@latest

OR download the binary from the releases

OR go the docker way

NOTE: You will need to mount your ssh directory to the container You can do this by adding -v <path to ssh dir>:/root/.ssh to the docker command You need to run this in an interactive terminal

docker run --rm  -it -v C:/Users/elliot/.ssh:/root/.ssh elliot404/ssm --help

Directory structure

/home/elliot/.ssh
├── config *
├── config.d *
│   ├── compute
│   └── homelab
├── known_hosts
├── id_rsa // private key **
└── id_rsa.pub // public key **

* - Required

** SSH keys are not required if you use password authorization

SSH keys can be generated with ssh-keygen

Config file ~/.ssh/config

# WORK SERVERS
Include config.d/compute

# HOME SERVERS
Include config.d/homelab

Example file in config.d ~/.ssh/config.d/compute

Host compute
  HostName 192.168.0.110
  IdentityFile ~/.ssh/id_rsa
  User ubuntu
  Port 4444

Usage

NAME:
   ssm - ssh config manager

USAGE:
   ssm [global options] command [command options] [arguments...]

VERSION:
   0.1.0

AUTHOR:
   Elliot <admin@elliot404.com>

COMMANDS:
   list, ls  list available ssh configs
   add       add new ssh config
   print     print ssh config
   edit, e   edit ssh config
   help, h   Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

TODO

  • Remove config
  • Add support for password authentication
  • ssh-keygen wrapper

License

MIT License