sshsync โก๐ sshsync is a fast, minimal CLI tool to run shell commands across multiple remote servers via SSH. Easily target all servers or just a specific group, great for sysadmins, developers, and automation workflows. IMPORTANT: sshsync uses asyncssh for SSH connections. If you use passphrase-protected SSH keys, you MUST have your ssh-agent running with the keys added via ssh-add. sshsync will rely on SSH agent forwarding to authenticate with protected keys. Throughout this documentation, whenever "host" is mentioned, it refers to the SSH alias defined by the Host directive in your ~/.ssh/config file, not the actual hostname ( HostName directive). sshsync uses these aliases for all operations. Features โจ ๐ Run shell commands on all hosts or specific groups or ๐ Executes commands concurrently across servers across servers ๐ง Group-based configuration for easy targeting ๐ Adjustable SSH timeout settings ๐ Push/pull files between local and remote hosts between local and remote hosts ๐ Operation history and logging ๐ Dry-run mode to preview actions before execution Demo ๐ฝ๏ธ Installation ๐ฆ Requirements Python 3.10 or higher Install with pip pip install sshsync Manual Installation Clone and install manually: git clone https://github.com/Blackmamoth/sshsync.git cd sshsync pipx install . Usage ๐ sshsync [OPTIONS] COMMAND [ARGS]... Global Options: --install-completion - Install completion for the current shell - Install completion for the current shell --show-completion - Show completion for the current shell - Show completion for the current shell --help - Show help message and exit Commands & Usage ๐ ๏ธ sshsync [OPTIONS] COMMAND [ARGS]... Running Commands on Servers Execute on All Hosts sshsync all [OPTIONS] CMD Options: --timeout INTEGER - Timeout in seconds for SSH command execution (default: 10) - Timeout in seconds for SSH command execution (default: 10) --dry-run - Show command and host info without executing Examples: # Check disk space on all servers with a 20 second ...
First seen: 2025-05-19 07:53
Last seen: 2025-05-19 12:54