Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClientConn

func NewClientConn(logger lager.Logger, permissions *ssh.Permissions, tlsConfig *tls.Config) (ssh.Conn, <-chan ssh.NewChannel, <-chan *ssh.Request, error)

func ProxyChannels

func ProxyChannels(logger lager.Logger, conn ssh.Conn, channels <-chan ssh.NewChannel)

func ProxyGlobalRequests

func ProxyGlobalRequests(logger lager.Logger, conn ssh.Conn, reqs <-chan *ssh.Request)

func ProxyRequests

func ProxyRequests(logger lager.Logger, channelType string, reqs <-chan *ssh.Request, channel ssh.Channel, wg *sync.WaitGroup)

func Wait

func Wait(logger lager.Logger, waiters ...Waiter)

Types

type LogMessage

type LogMessage struct {
	Message string            `json:"message"`
	Tags    map[string]string `json:"tags"`
}

type Proxy

type Proxy struct {
	// contains filtered or unexported fields
}

func New

func New(
	logger lager.Logger,
	serverConfig *ssh.ServerConfig,
	metronClient loggingclient.IngressClient,
	tlsConfig *tls.Config,
) *Proxy

func (*Proxy) HandleConnection

func (p *Proxy) HandleConnection(netConn net.Conn)

type TargetConfig

type TargetConfig struct {
	Address             string `json:"address"`
	TLSAddress          string `json:"tls_address"`
	ServerCertDomainSAN string `json:"server_cert_domain_san"`
	HostFingerprint     string `json:"host_fingerprint"`
	User                string `json:"user,omitempty"`
	Password            string `json:"password,omitempty"`
	PrivateKey          string `json:"private_key,omitempty"`
}

type Waiter

type Waiter interface {
	Wait() error
}