MultiSSH is a powerful and lightweight tool that enables users to run commands, transfer files, and clone directories on multiple remote hosts simultaneously over SSH. It provides both CLI and GUI interfaces, making it suitable for automation, DevOps, and system administration tasks.
- Run Commands on Multiple Hosts: Execute the same command on multiple servers concurrently.
- Parallel Execution: Uses Goroutines to handle multiple SSH connections efficiently.
- Secure Authentication: Supports both password and private key authentication.
- Configuration Management: Supports JSON and YAML configuration.
- File Transfer:
- Upload single file to multiple hosts through command line arguments.
- Upload files to the specified host through config file.
- File Transfer: Download directories through command line arguments.
- Execution Flow: Clear execution flow.
- Container Deployment: Easily deployable on Docker and Kubernetes.
Recommend to use
go run main.go -f <config_file>- Set up either absolute private key path or password for each host in config file.
Alternatively, use
go run main.go -a <address> -u <username> -p <password> -k <key_path> -c <command>- For multiple hosts, specify each address with its own flag:
--address <address1> --address <address2> .... - Use only one authentication method for all hosts: either password or private key.
- GUI interface
- Docker/Kubernetes integration
- Logging & monitoring with Prometheus/Grafana
- Windows support
MIT License