An interactive parallel ssh client featuring autocomplete and asynchronous execution.
hssis an interactive ssh client for multiple servers. It will provide almost the same experience as in the bash environment. It supports:
tabkey, for commands and paths.
Command is executed on all servers in parallel. Execution on one server does not need to wait for that on another server to finish before starting. So we can run a command on hundreds of servers at the same time.
Usage: hss [-f hostfile] [-o file] [-u username] [command]...
Options: -f file file with the list of hosts -H host specifies a host option, support the same options as the ssh command -l limit number of multiple ssh to perform at a time (default: unlimited) -u user the default user name to use when connecting to the remote server -c opts specify the common ssh options (i.e. '-p 22 -i identity_file') -o file write remote command output to a file -i force use a vi-style line editing interface -v be more verbose -V show program version -h display this message
For more information, see https://github.com/six-ddc/hss
brew install hss
## on CentOS yum install readline-devel
on Ubuntu / Debian
apt-get install libreadline6-dev
make && make install
Or you can download the binary release here .
The fundamental of
hssis to execute the
sshcommand for every
host, and then show the results on the terminal. So
hsssupports every argument supported by the
sshcommand. Following is an example of the
192.168.1.1 -p 2222 [email protected] -p 2222 -i ~/.ssh/identity_file [email protected] -p 2222 -oConnectTimeout=3 [email protected]
Connect to servers:
# Specify the hostfile directly hss -f hostfile
Or pass servers in arguments
ssharguments are supported. For example, by specify
-c '-oConnectTimeout=3', sessions without a timeout configured will set its timeout on this argument.
The interactive input is implemented on
libreadline, supporting command and path completion from remote, history storage and searching, moving around, etc. (please refer to readline for more)