Skip to content

lixvbnet/sshw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sshw

ssh client wrapper for automatic login.

  • Select / Search / Login

  • Use Command Line Arguments

  • Run / Start Command

  • And if you need to manage a bunch of hosts under the same domain, such as

    hostA.your.domain.com
    hostB.your.domain.com
    hostC.your.domain.com
    ...
    

    you can write your domain in the config file (see config section below), and then you can just specify short hostname in the command line.

    sshw root@hostA

    sshw will concatenate domain name for you. FQDN won't be affected. (Note: make sure there is no . in your short hostname otherwise sshw would consider it as an FQDN.)

  • AND you need to set separate default passwords for different users? Just config them in "settings - logins" section (see config section below. With that example config, when you connect with user admin such as sshw admin@host or sshw -u admin , the password for admin user, in this case "password", will be used; but if a user is not configured, default password will be used.)

install

go install github.com/lixvbnet/sshw@latest

or download pre-compiled binaries from Releases page.

config

put config file .sshw.yml in home directory or in the same directory of the binary.

config example:

settings:
  domain: example.com
  logins:
    - user: admin
      password: password
    - user: testuser
      password: testpass
    - user: anotheruser
      password: anotherpass

default:
  user: root
  password: 123456


nodes:
  - name: nodeA
    alias: nodeA
    host: 192.168.1.10

  - name: nodeB
    alias: nodeB,secondNode,11
    host: 192.168.1.11
    user: root
    password: Password

usage

sshw [options] [target] [command]

where target is of the form [user[:pass]@]host. A host can be an FQDN, short hostname, configured node name or alias. Run sshw -h for a full list of available options.


This is a complete rewrite, except the UI interface, of yinheli/sshw for extensibility. And the following features were added:

  • Support setting default user/password
  • Support short hostnames by setting up domain ( concatenated as hostname.domain )
  • Support command line arguments
    sshw user:pass@host
    # use default password
    sshw user@host
    # use default user/password
    sshw host
  • Support using flags before selecting host from list
    # use specified user and default password for selected host
    sshw -u admin
    # use specified user and password (will prompt for input) for selected host
    sshw -u admin -pass
    # use specified port for selected host
    sshw -p 33
  • Or even using both (The flags have top priority)
    # will prompt for password
    sshw -pass user@host
  • Run command on host
    # run command and get its output
    sshw -pass user@host "echo hello"
    # request a terminal and start command
    sshw -t -pass user@host "/bin/bash"
  • Support more ciphers and kex algorithms