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
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
Install binaries and manpages:
# make install
sshproxy-dumpd are installed in
There are commented configuration files in the
If you want to use
sshproxy-managerd you need its configuration file
/etc/sshproxy/sshproxy-managerd.yaml. There are service files for
systemd in the
misc directory to start
/etc/sshproxy/sshproxy.yaml to suit your needs.
Modify the SSH daemon configuration
/etc/ssh/sshd_config by adding:
Copyright © 2015-2019 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)
Licence_CeCILL-B_V1-fr.txt (French version) or visit
http://www.cecill.info for details.
Arnaud Guignard <firstname.lastname@example.org>
See files in the