SSH Manager is a CLI tool for connecting to SSH hosts and conveniently editing them interactively, with the ability to group hosts by projects. It is suitable for developers, DevOps engineers, and anyone who works with multiple SSH servers.
- Convenient SSH manager: More convenient than constantly editing
~/.ssh/config
. SSH hosts and their parameters are stored in ajson
file, allowing flexible configuration of each host and grouping hosts by projects. - Fast host selection: Uses fzf for instant search and selection of a host to connect to.
- Interactive editing: Add, edit, and delete hosts and projects through a simple menu.
- Linux, macOS
- Python 3
- jq
- fzf
-
Create the directory
~/.ssh/ssh_manager/
and copy the filesssh_manager.py
andssh_connect
into it:mkdir -p ~/.ssh/ssh_manager cp ssh_manager.py ssh_connect ~/.ssh/ssh_manager/
-
Make the
ssh_connect
script executable:chmod +x ~/.ssh/ssh_manager/ssh_connect
-
(Optional) Add the script directory to your
PATH
to run the program from anywhere, or add an alias for launchingssh_connect
with a short command. Open your~/.bashrc
,~/.zshrc
, or other shell config file and add:export PATH="$HOME/.ssh/ssh_manager:$PATH"
or
alias sshm="$HOME/.ssh/ssh_manager/ssh_connect"
The following instructions assume you have completed this step
-
Make sure the dependencies are installed:
brew install jq fzf
- Enter
sshm
- Select the desired host from the list and press Enter. Or start typing the host name to filter the list to only those hosts containing your input.
- Enter
sshm --hosts
# or
sshm -h
- Select a menu item and follow the on-screen instructions.
See hosts.json — an example file with several projects and hosts.