Show HN: Sshsync โ€“ CLI tool to run shell commands across multiple remote servers

https://news.ycombinator.com/rss Hits: 6
Summary

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