server

package
v0.0.0-...-606f04a Latest Latest
Warning

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

Go to latest
Published: May 24, 2023 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrListnerClosed = errors.New("routing: listener closed")
)
View Source
var File_server_proto protoreflect.FileDescriptor

Functions

func Start

func Start(opt Opt) error

Types

type AuthRequest

type AuthRequest struct {
	ClientVersion string `protobuf:"bytes,1,opt,name=client_version,json=clientVersion,proto3" json:"client_version,omitempty"`
	RemoteAddr    string `protobuf:"bytes,2,opt,name=remote_addr,json=remoteAddr,proto3" json:"remote_addr,omitempty"`
	AuthorizedKey []byte `protobuf:"bytes,3,opt,name=authorized_key,json=authorizedKey,proto3" json:"authorized_key,omitempty"`
	// contains filtered or unexported fields
}

func (*AuthRequest) Descriptor deprecated

func (*AuthRequest) Descriptor() ([]byte, []int)

Deprecated: Use AuthRequest.ProtoReflect.Descriptor instead.

func (*AuthRequest) GetAuthorizedKey

func (x *AuthRequest) GetAuthorizedKey() []byte

func (*AuthRequest) GetClientVersion

func (x *AuthRequest) GetClientVersion() string

func (*AuthRequest) GetRemoteAddr

func (x *AuthRequest) GetRemoteAddr() string

func (*AuthRequest) ProtoMessage

func (*AuthRequest) ProtoMessage()

func (*AuthRequest) ProtoReflect

func (x *AuthRequest) ProtoReflect() protoreflect.Message

func (*AuthRequest) Reset

func (x *AuthRequest) Reset()

func (*AuthRequest) String

func (x *AuthRequest) String() string

type CreateSessionRequest

type CreateSessionRequest struct {
	HostUser             string   `protobuf:"bytes,1,opt,name=hostUser,proto3" json:"hostUser,omitempty"`
	HostPublicKeys       [][]byte `protobuf:"bytes,2,rep,name=hostPublicKeys,proto3" json:"hostPublicKeys,omitempty"`
	ClientAuthorizedKeys [][]byte `protobuf:"bytes,3,rep,name=clientAuthorizedKeys,proto3" json:"clientAuthorizedKeys,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateSessionRequest) Descriptor deprecated

func (*CreateSessionRequest) Descriptor() ([]byte, []int)

Deprecated: Use CreateSessionRequest.ProtoReflect.Descriptor instead.

func (*CreateSessionRequest) GetClientAuthorizedKeys

func (x *CreateSessionRequest) GetClientAuthorizedKeys() [][]byte

func (*CreateSessionRequest) GetHostPublicKeys

func (x *CreateSessionRequest) GetHostPublicKeys() [][]byte

func (*CreateSessionRequest) GetHostUser

func (x *CreateSessionRequest) GetHostUser() string

func (*CreateSessionRequest) ProtoMessage

func (*CreateSessionRequest) ProtoMessage()

func (*CreateSessionRequest) ProtoReflect

func (x *CreateSessionRequest) ProtoReflect() protoreflect.Message

func (*CreateSessionRequest) Reset

func (x *CreateSessionRequest) Reset()

func (*CreateSessionRequest) String

func (x *CreateSessionRequest) String() string

type CreateSessionResponse

type CreateSessionResponse struct {
	SessionID string `protobuf:"bytes,1,opt,name=sessionID,proto3" json:"sessionID,omitempty"`
	NodeAddr  string `protobuf:"bytes,2,opt,name=nodeAddr,proto3" json:"nodeAddr,omitempty"`
	// contains filtered or unexported fields
}

func (*CreateSessionResponse) Descriptor deprecated

func (*CreateSessionResponse) Descriptor() ([]byte, []int)

Deprecated: Use CreateSessionResponse.ProtoReflect.Descriptor instead.

func (*CreateSessionResponse) GetNodeAddr

func (x *CreateSessionResponse) GetNodeAddr() string

func (*CreateSessionResponse) GetSessionID

func (x *CreateSessionResponse) GetSessionID() string

func (*CreateSessionResponse) ProtoMessage

func (*CreateSessionResponse) ProtoMessage()

func (*CreateSessionResponse) ProtoReflect

func (x *CreateSessionResponse) ProtoReflect() protoreflect.Message

func (*CreateSessionResponse) Reset

func (x *CreateSessionResponse) Reset()

func (*CreateSessionResponse) String

func (x *CreateSessionResponse) String() string

type HostCertSigner

type HostCertSigner struct {
	Hostnames []string
}

func (*HostCertSigner) SignCert

func (s *HostCertSigner) SignCert(signer ssh.Signer) (ssh.Signer, error)

type MemoryProvider

type MemoryProvider struct {
	SocketPath string
	// contains filtered or unexported fields
}

func (*MemoryProvider) Name

func (p *MemoryProvider) Name() string

func (*MemoryProvider) Opts

func (p *MemoryProvider) Opts() string

func (*MemoryProvider) SSHD

func (p *MemoryProvider) SSHD() SSHDDialListener

func (*MemoryProvider) Session

func (p *MemoryProvider) Session() SessionDialListener

func (*MemoryProvider) SetOpts

func (p *MemoryProvider) SetOpts(opts NetworkOptions) error

type NetworkOptions

type NetworkOptions map[string]string

type NetworkProvider

type NetworkProvider interface {
	SetOpts(opts NetworkOptions) error
	Session() SessionDialListener
	SSHD() SSHDDialListener
	Name() string
	Opts() string
}

type Opt

type Opt struct {
	SSHAddr    string
	WSAddr     string
	NodeAddr   string
	KeyFiles   []string
	Hostnames  []string
	Network    string
	NetworkOpt []string
	MetricAddr string
	Debug      bool
}

type SSHDDialListener

type SSHDDialListener interface {
	Listen() (net.Listener, error)
	Dial() (net.Conn, error)
}

type SSHRouting

type SSHRouting struct {
	HostSigners     []ssh.Signer
	AuthPiper       *authPiper
	Logger          log.FieldLogger
	MetricsProvider provider.Provider
	// contains filtered or unexported fields
}

func (*SSHRouting) Serve

func (p *SSHRouting) Serve(ln net.Listener) error

func (*SSHRouting) Shutdown

func (p *SSHRouting) Shutdown() error

type Server

type Server struct {
	NodeAddr        string
	HostSigners     []ssh.Signer
	Signers         []ssh.Signer
	NetworkProvider NetworkProvider
	MetricsProvider provider.Provider
	Logger          log.FieldLogger
	// contains filtered or unexported fields
}

func (*Server) ServeWithContext

func (s *Server) ServeWithContext(ctx context.Context, sshln net.Listener, wsln net.Listener) error

func (*Server) Shutdown

func (s *Server) Shutdown()

type ServerInfo

type ServerInfo struct {
	NodeAddr string
}

type SessionDialListener

type SessionDialListener interface {
	Listen(sesisonID string) (net.Listener, error)
	Dial(sessionID string) (net.Conn, error)
}

type UnixProvider

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

func (*UnixProvider) Name

func (p *UnixProvider) Name() string

func (*UnixProvider) Opts

func (p *UnixProvider) Opts() string

func (*UnixProvider) SSHD

func (p *UnixProvider) SSHD() SSHDDialListener

func (*UnixProvider) Session

func (p *UnixProvider) Session() SessionDialListener

func (*UnixProvider) SetOpts

func (p *UnixProvider) SetOpts(opts NetworkOptions) error

type UserCertChecker

type UserCertChecker struct {
	UserKeyFallback func(user string, key ssh.PublicKey) (ssh.PublicKey, error)
}

func (*UserCertChecker) Authenticate

func (c *UserCertChecker) Authenticate(user string, key ssh.PublicKey) (*AuthRequest, ssh.PublicKey, error)

Authenticate tries to pass auth request and public key from a cert. If the public key is not a cert, it calls the UserKeyFallback func. Otherwise it returns an error.

type UserCertSigner

type UserCertSigner struct {
	SessionID   string
	User        string
	AuthRequest *AuthRequest
}

func (*UserCertSigner) SignCert

func (g *UserCertSigner) SignCert(signer ssh.Signer) (ssh.Signer, error)

Jump to

Keyboard shortcuts

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