sshutil

package module
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2021 License: MIT Imports: 7 Imported by: 0

README

sshutil

Documentation Go Report Card codecov

sshutil provides higher-level SSH features in Go built atop the golang.org/x/crypto/ssh package.

go get cmoog.io/sshutil

ReverseProxy

sshutil.ReverseProxy implements a single host reverse proxy for SSH servers and clients. Its API is modeled after the ergonomics of the HTTP reverse proxy implementation.

httputil.NewSingleHostReverseProxy(targetURL).ServeHTTP(w, r)

err = sshutil.NewSingleHostReverseProxy(targetHost, &clientConfig).Serve(ctx, conn, channels, requests)

Documentation

Overview

Package sshutil provides higher-level SSH features built atop the `golang.org/x/crypto/ssh` package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ReverseProxy

type ReverseProxy struct {
	TargetAddress      string
	TargetClientConfig *ssh.ClientConfig

	// ErrorLog specifies an optional logger for errors
	// that occur when attempting to proxy.
	// If nil, logging is done via the log package's standard logger.
	ErrorLog *log.Logger
}

ReverseProxy is an SSH Handler that takes an incoming request and sends it to another server, proxying the response back to the client.

func NewSingleHostReverseProxy

func NewSingleHostReverseProxy(targetAddr string, clientConfig *ssh.ClientConfig) *ReverseProxy

NewSingleHostReverseProxy constructs a new *ReverseProxy instance.

func (*ReverseProxy) Serve

func (r *ReverseProxy) Serve(ctx context.Context, serverConn *ssh.ServerConn, serverChans <-chan ssh.NewChannel, serverReqs <-chan *ssh.Request) error

Serve executes the reverse proxy between the specified target client and the server connection.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL