Small bash script to manage your ssh connections. It builds menu (via dialog) from your ~/.ssh/config. It can not only connect but also to run commands, copy files, tunnel ports.
Alternatives To Sshto
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
15 days ago6mitShell
Small bash script to manage your ssh connections. It builds menu (via dialog) from your ~/.ssh/config. It can not only connect but also to run commands, copy files, tunnel ports.
9 years ago3March 02, 20111otherPython
Desktop tool to quickly setup SSH tunnels and automatically execute commands that make use of them
Swbothook Node5
6 years agoJavaScript
Star Wars Bot hook in node.js
Alternatives To Sshto
Select To Compare

Alternative Project Comparisons


Small bash script that builds a menu (via dialog) from your ~/.ssh/config. screeenshot Allows you to connect to your servers or run commands from menu. Available commands: cmds Your commands can be easily added to this list. Just edit this part of the script:

    #Command#    #Description#
    "${slct[@]}" #De/Select command
    "Username"   "Change ssh username to \Z1$GUEST\Z0"
    "Add tab"    "Add terminal tab with \Z1sshto\Z0 for \Z4$target\Z0"
    "Ssh tab"    "Add terminal tab with \Z1ssh\Z0 to \Z4$target\Z0"
    ''           ''
    "ls -lah"    "List Files"
    "free -h"    "Show free memory"
    "df  -ih"    "Show free inodes"
    "df   -h"    "Show free disk space"
    "Custom"     "Run custom command on \Z4$target\Z0"
    "Script"     "Run custom script on \Z4$target\Z0"
    ''           ''
    'Yes'        "Say 'yes' to SSH"
    "Info"       "Full system info"
    'Fix_id'     "Update host in known_hosts"
    "Sshkey"     "Add my ssh key to \Z4$target\Z0"
    "Alias"      "Add my useful aliases to \Z4$target\Z0"
    "Copy"       "Copy selected file or dir to \Z4$target\Z0"
    ''           ''
    "Home"       "Change home folder \Z4$home\Z0 on local server"
    "Dest"       "Change destination folder \Z4$DEST\Z0 on \Z4$target\Z0"
    "Upload"     "Upload file or folder from \Z4$home\Z0 to \Z4$target:${DEST}\Z0"
    "Download"   "Download file or folder from \Z4$target:${DEST}\Z0 to \Z4$home\Z0"
    "Mount"      "Mount remote folder \Z4$target:$DEST\Z0 to \Z4$home\Z0"
    "Unmount"    "Unmount remote folder \Z4$target:$DEST\Z0 from \Z4$home\Z0"
    ''           ''
    "Local"      "Change local  port \Z1$LOCAL\Z0"
    "Remote"     "Change remote port \Z1$REMOTE\Z0"
    "Tunnel"     "Start portunneling from \Z4$target:$REMOTE\Z0 to \Z4localhost:$LOCAL\Z0"
    ''           ''
    "ShowConf"   "Show ssh config for this host"
    "EditConf"   "Edit ssh config for this host"

First collumn - command, second - description. Simple commands like ls -la could be added as is. A list of commands or a complicated logic should be added via function. Empty values('') could be used as a delimiter. You can quick jump to the selected server via CONNECT button. To close ssh session press CTRL+D or run exit command, it'll bring you back to sshto commands section. Optional hosts description could be added like this:

Host server1 #Description, it could be more than one word
Port 22
User admin

Optional start menu delimiters '---{ Group Name }---' could be added like this:

#Host DUMMY #Group Name#

If you are unhappy with this 'DUMMY' group name template, or you actually have a host named 'dummy', you can change this template by ajusting this variable group_id=dummy. All these additions won't break your ssh configs coz they are considered as comments.

~/.ssh/config example:

#Host DUMMY #Rybinsk#

Host rybserver1 #First server
HostName localhost

Host rybserver2 #Second server
HostName localhost

Host rybserver3 #Third server
HostName localhost

#Host DUMMY #Moscow#

Host moserver1 #First server
HostName localhost

Host moserver2 #Second server
HostName localhost

Host moserver3 #Third server
HostName localhost

Script greps data from multiple config files via pattername config* in ~/.ssh dir. So you can split config to multiple files and use them with Include directive, example:

Include config_moscow
Include config_rybinsk
Include config*

All preset variables and functions could be tweaked via ~/.sshtorc config file:

echo "REMOTE=9000  # Remote port for tunneling." >> ~/.sshtorc

You can customize dialog itself a bit by creating and editing its config file:

dialog --create-rc ~/.dialogrc
nano ~/.dialogrc

If you don't have dialog and don't want(or can't) to install it, there is a dialog-less version of sshto in my new project bashui here is how it looks: bashui-hosts


Try it bashui-sshto!

How to install

Clone\download this project, go to it's folder and run:

sudo cp sshto /usr/bin/

#and to unistall
sudo rm /usr/bin/sshto

See how it works at asciinema

ssh config guide Tom Lawrens video guide about ssh config and sshto

paypal Feel free to support the project!)

Twitter DOGE: D7qJBRU3UpXES9EwtvE8YZSNAVgFEmz3py dodge

BTC: 1LxRxsyXP389YW3Ezw9YzNetE5VYj1RaJf btc

BCH: qqnssal30x6acrga6zt4pd4q2s2t8um3cyqvd37qs7 bch

ETH: 0xd7e17A37DD936B211790ba70Aa985448277030E8 eth

XMR: 484z9YpiD4VBd4BfsaG7jKGYGuJ84tYJyCJBX4ZnAPqQXsUWgTY14TKRH3JLosFSAsKsv75nyt9yWPkFMUJhryxi7zccHNB mon

LTC: LRVPYR7dvRVdNET23gg3fvTwDM9hotQkZw ltc

DASH: Xtz7P6GasicE9yS8zXkH3PH2qAF2qWJADG dash

ZEC: t1ZDgHci8yDVkoGvUFG7QtxUNRuzsF1Qtse zec

MKR: 0xd7e17A37DD936B211790ba70Aa985448277030E8 mkr

Popular Tunnel Projects
Popular Dialog Projects
Popular Networking Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Bash Script