17

GitHub - vaniacer/sshto: Small bash script to manage your ssh connections. It bu...

 4 years ago
source link: https://github.com/vaniacer/sshto
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

sshto

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:
screeenshot

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"
    ''         ''
    "ShowConf" "Show ssh config for this host"
    "EditConf" "Edit ssh config for this host"
); }

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

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

Don't hold yourself, buy me a beer)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK