# Shaft - right on.
 $$$$$$\  $$\   $$\  $$$$$$\  $$$$$$$$\ $$$$$$$$\
$$  __$$\ $$ |  $$ |$$  __$$\ $$  _____|\__$$  __|
$$ /  \__|$$ |  $$ |$$ /  $$ |$$ |         $$ |
\$$$$$$\  $$$$$$$$ |$$$$$$$$ |$$$$$\       $$ |
 \____$$\ $$  __$$ |$$  __$$ |$$  __|      $$ |
$$\   $$ |$$ |  $$ |$$ |  $$ |$$ |         $$ |
\$$$$$$  |$$ |  $$ |$$ |  $$ |$$ |         $$ |
 \______/ \__|  \__|\__|  \__|\__|         \__|
An SSH tunnel assistant for the command line. ## Installation As easy as: $ gem install shaft ## Usage Your tunnel configurations need to be stored as [YAML](http://www.yaml.org) files on your `~/.shaft/` dir. See 'Configuration' for instructions on how to format these files. * Use `shaft all` to get a list of all available tunnels. * Use `shaft list` to see which tunnels are currently active. - You could use the `--short` option to get only the names of those lines (this could be useful to insert into your shell prompt. Just saying). * `shaft start [NAME]` would start the tunnel of the same name. * `shaft stop [NAME]` would stop the tunnel of the given name. ## Configuration Each SSH tunnel you want to have configured needs to be defined in YAML format and stored in `~/.shaft/name.yml`, where `name` is the tunnel name that would be used for `shaft`. An example configuration would be: port: 22 username: user host: remote-host bind: client-port: 9999 host: host host-port: 8888 Starting the tunnel defined in this example would be equivalent to running: $ ssh -N -p 22 user@remote-host -L 9999:host:8888 ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Added some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request