Programming language: Go
License: MIT License
Latest version: v0.5.1

manssh alternatives and similar packages

Based on the "DevOps Tools" category.
Alternatively, view manssh alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of manssh or a related project?

Add another 'DevOps Tools' Package



Release Build Status Go Report Card GoCover.io GoDoc DUB

manssh is a command line tool for managing your ssh alias config easily, inspired by storm project, powered by Go.

Note: This project is actually a simple glue project, the most complex and core parsing ssh config file logic implements by ssh_config, I didn't do much. At first it was just a imitation of storm, now it has become a little different.




go get -u github.com/xwjdsh/manssh/cmd/manssh


brew tap xwjdsh/tap
brew install xwjdsh/tap/manssh


alias manssh='docker run -t --rm -v ~/.ssh/config:/root/.ssh/config wendellsun/manssh'


Download it from releases, and extract it to your PATH directory.


% manssh
   manssh - Manage your ssh alias configs easily

   manssh [global options] command [command options] [arguments...]


     add, a     Add a new SSH alias record
     list, l    List or query SSH alias records
     update, u  Update SSH record by specifying alias name
     delete, d  Delete SSH records by specifying alias names
     backup, b  Backup SSH config files
     help, h    Shows a list of commands or help for one command

   --file value, -f value  (default: "/Users/wendell/.ssh/config")
   --help, -h              show help
   --version, -v           print the version

Add a new alias

# manssh add test2
# manssh add test1 [email protected]:77 -c IdentityFile=~/.ssh/wendell
% manssh add test1 [email protected]:77 -i ~/.ssh/wendell
βœ” alias[test1] added successfully.

        test1 -> [email protected]:77
                identityfile = /Users/wendell/.ssh/wendell

Username and port config is optional, the username is current login username and port is 22 by default. Using -c to set more config options. For convenience, -i xxx can instead of -c identityfile=xxx.

List or query alias

# manssh list
# manssh list "*"
# manssh list Test -ic
% manssh list test1 77
βœ” Listing 1 records.

        test1 -> [email protected]:77
                identityfile = /Users/wendell/.ssh/wendell

It will display all alias records If no params offered, or it will using params as keywords query alias records. If there is a -it option, it will ignore case when searching.

Update an alias

# manssh update test1 -r test2
# manssh update test1 [email protected]:22022
% manssh update test1 -i "" -r test3 -c hostname= -c port=22022
βœ” alias[test3] updated successfully.

        test3 -> [email protected]:22022

Update an existing alias record, it will replace origin user, hostname, port config's if connected string param offered. You can use -c to update single and extra config option, -c identityfile= -c proxycommand= will remove identityfile and proxycommand options. For convenience, -i xxx can instead of -c identityfile=xxx Rename the alias specified by -r flag.

Delete one or more alias

# manssh delete test1
% manssh delete test1 test2
βœ” alias[test1,test2] deleted successfully.

Backup ssh config

% manssh backup ./config_backup
βœ” backup ssh config to [./config_backup] successfully.

For Include directive

If you use the Include directive, there are some extra notes.

Add -p(--path) flag for list,add,update,delete command to show the file path where the alias is located, it can also be set by the MANSSH_SHOW_PATH environment variable.


Set to true to show the file path where the alias is located. Default is false.

Add -ap(--addpath) flag for add command to specify the file path to which the alias is added, it can also be set by the MANSSH_ADD_PATH environment variable.


This file path indicates to which file to add the alias. Default is the entry config file.

For convenience, you can export these environments in your .zshrc or .bashrc, example:

export MANSSH_SHOW_PATH=true
export MANSSH_ADD_PATH=~/.ssh/config.d/temp



MIT License

*Note that all licence references and agreements mentioned in the manssh README section above are relevant to that project's source code only.