SSH Manager (sshm) is a bash script that simplifies and automates the management of SSH hosts through the SSH configuration file (~/.ssh/config
). It provides functionalities to list, connect, view, add, edit, and delete SSH host configurations, check the availability of hosts using pings, and manage different SSH configuration contexts.
- List all SSH hosts in the configuration file.
- Connect to an SSH host by number or name.
- View the configuration details of a specific SSH host.
- Add a new SSH host configuration.
- Edit an existing SSH host configuration.
- Delete an SSH host configuration.
- Check the availability of an SSH host using ping.
- Manage multiple SSH configuration contexts.
- Bash
- SSH
- awk
- sed
- ping
-
Clone the repository:
git clone https://github.com/yourusername/sshm.git cd sshm
-
Make the script executable:
chmod +x sshm
-
Move the script to a directory in your PATH, for example:
sudo mv sshm /usr/local/bin/
sshm list
sshm connect <name>
sshm view <name>
sshm add
The script will prompt you to enter the host details.
sshm edit <name>
The script will prompt you to enter the new details for the host.
sshm delete <name>
sshm ping <name>
sshm context list
This will list all available SSH configuration contexts and highlight the currently active one.
sshm context use <context_name>
Switches the active SSH configuration to the specified context.
sshm context create <context_name>
Creates a new SSH configuration context.
sshm context delete <context_name>
Deletes the specified SSH configuration context.
sshm add
You will be prompted to enter the following details:
- Host name
- HostName (IP address or domain)
- User (default: current user)
- Port (default: 22)
- IdentityFile (default:
~/.ssh/id_rsa
)
sshm edit myhost
You will be prompted to update the details for the host myhost
.
sshm view myhost
sshm ping myhost
sshm context use myconfig
Switches to the myconfig
SSH configuration context.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Contributions are welcome! Please open an issue or submit a pull request.