Categorygithub.com/cea-hpc/sshproxy
module
0.4.5
Repository: https://github.com/cea-hpc/sshproxy.git
Documentation: pkg.go.dev

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

# Packages

Adapted from https://github.com/proxypoke/group.go Package group allows user group lookups by name or id.
No description provided by the author
Package record provides a representation for the data read from or written to a file descriptor with functions to serialize/unserialize it.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author