# README
sshproxy
image:https://travis-ci.org/cea-hpc/sshproxy.svg?branch=master["Build Status", link="https://travis-ci.org/cea-hpc/sshproxy"]
What is sshproxy?
sshproxy is used on a gateway to transparently proxy a user SSH connection on the gateway to an internal host via SSH. scp, sftp, rsync, etc. are supported.
sshproxy defines routes which bind an SSH listening address to a pool of destination hosts. It can then choose the first available destination or load-balance the connections with a simple round-robin algorithm.
Because of its design sshproxy is stateless (it is launched as a +ForceCommand+ by sshd). It can be made stateful by using the +sshproxy-managerd+ daemon which:
- remembers users connections and always connects a user to the same destination while a connection to this destination is alive,
- periodically checks if destination hosts are alive.
sshproxy can be configured to monitor SSH sessions and either to save them in files or to send them to the very simple +sshproxy-dumpd+ daemon. Sessions can be replayed with the +sshproxy-replay+ command.
Compilation
Install the Go compiler suite: see http://golang.org/doc/install for details.
Define and export the +$GOPATH+ directory where the source code will be unpacked (e.g. '$HOME/go'):
$ export GOPATH=$HOME/go
$ mkdir -p $GOPATH/src/github.com/cea-hpc
$ cd $GOPATH/src/github.com/cea-hpc
$ tar xvJf sshproxy-X.Y.Z.tar.xz
Compile everything:
$ make
Installation
Install binaries and manpages:
# make install
+sshproxy+, +sshproxy-managerd+ and +sshproxy-dumpd+ are installed in +/usr/sbin+ and +sshproxy-replay+ in +/usr/bin+.
Configuration
There are commented configuration files in the +config+ directory.
If you want to use +sshproxy-managerd+ you need its configuration file +/etc/sshproxy/sshproxy-managerd.yaml+. There are service files for +Upstart+ and +systemd+ in the +misc+ directory to start +sshproxy-managerd+.
Configure +/etc/sshproxy/sshproxy.yaml+ to suit your needs.
Modify the SSH daemon configuration +/etc/ssh/sshd_config+ by adding:
ForceCommand /usr/sbin/sshproxy
Copying
Copyright (C) 2015-2017 CEA/DAM/DIF
sshproxy is distributed under the CeCILL-B, a French transposition of the BSD license. See the included files +Licence_CeCILL-B_V1-en.txt+ (English version) and +Licence_CeCILL-B_V1-fr.txt+ (French version) or visit http://www.cecill.info for details.
Author
Arnaud Guignard [email protected]
Documentation
See files in the +doc+ directory.
// vim:tw=78:ft=asciidoc: