Small bash script that builds a menu (via dialog) from your ~/.ssh/config.
Allows you to connect to your servers or run commands from menu. Available commands:
Your commands can be easily added to this list. Just edit this part of the script:
cmdlist_renew () { cmdlist=(
#Command# #Description#
"Username" "Change ssh username to $GUEST"
'' ''
"ls -la" "List Files"
"free -h" "Show free memory"
"df -ih" "Show free inodes"
"df -h" "Show free disk space"
'' ''
"Info" "Full system info"
"Sshkey" "Add my ssh key to $target"
"Alias" "Add my usefull aliases to $target"
"Copy" "Copy selected file or dir to $target"
'' ''
"Dest" "Change destination folder $DEST on $target"
"Upload" "Upload file or folder from $PWD to $target:$DEST"
"Download" "Download file or folder from $target:$DEST to $PWD"
'' ''
"Local" "Change local port $LOCAL"
"Remote" "Change remote port $REMOTE"
"Tunnel" "Start portunneling from $target port $REMOTE to local port $LOCAL"
); }
First collumn - command, second - description.
Simple commands like 'ls -la' can be added as is.
A list of commands or a complicated logic better add via function.
Empty string is used as a delimiter.
You can quick jump to the selected server via CONNECT button.
When you done press ^D it'll bring you back to sshto commands section.
Hosts description needs to be added like this:
Host server1 #DESCRIPTION HostName 192.168.0.1 Port 22 User admin
Start menu delimiters '---{ TEXT }---' can be added like this:
#Host DUMMY #TEXT#
~/.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*
You can customize dialog colors by creating a config file:
dialog --create-rc ~/.dialogrc
Clone\download this project, go to it's folder and run:
sudo cp sshto /usr/bin/ #and to unistall sudo rm /usr/bin/sshto
