Need help with hss?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

six-ddc
281 Stars 21 Forks MIT License 78 Commits 7 Opened issues

Description

An interactive parallel ssh client featuring autocomplete and asynchronous execution.

Services available

!
?

Need anything else?

Contributors list

# 97,275
C
C++
pcap-fi...
tcpdump
65 commits
# 493,683
bitmap
ssh-cli...
C
C++
1 commit
# 10,552
Firefox
localho...
nix
karabin...
1 commit

hss

Release Build Status License: MIT

简体中文README

What's hss?

hss
is an interactive ssh client for multiple servers. It will provide almost the same experience as in the bash environment. It supports:
  • interactive input: based on libreadline.
  • history: responding to the
    C-r
    key.
  • auto-completion: completion from remote server on the
    tab
    key, 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.

A quick start

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

  • This is a screenshot

asciicast

How to install it?

  • MacOS

    brew install hss
    
    sudo port selfupdate
    sudo port install hss
    
  • Linux

    • Install dependency
    ## on CentOS
    yum install readline-devel
    
    

    on Ubuntu / Debian

    apt-get install libreadline6-dev

    • Compile and install
    make && make install
    
  • Or you can download the binary release here .

How to use it?

The fundamental of

hss
is to execute the
ssh
command for every
host
, and then show the results on the terminal. So
hss
supports every argument supported by the
ssh
command. Following is an example of the
hostfile
:
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

hss -H '192.168.1.1' -H '-p 2222 [email protected]' -H '-p 2222 -i ~/.ssh/identity_file [email protected]' -H '-p 2222 -oConnectTimeout=3 [email protected]'

Passthrough of

ssh
arguments are supported. For example, by specify
-c '-oConnectTimeout=3'
, sessions without a timeout configured will set its timeout on this argument.

Usage of readline

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)
  • Command history is stored in file
    ~/.hss_history
    .
  • Completion of commands and paths are based on the first server in the list.
  • Path completion is available when the first input character is
    /
    ,
    ~
    or
    .
    .

Goals of the future versions

  • [x] Solve the "@" suffix problem on directory symbol-link.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.