sshutils

package module
v0.0.17 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2023 License: Apache-2.0 Imports: 16 Imported by: 2

README

sshutils

Go SSH utils library to complement golang.org/x/crypto/ssh

https://pkg.go.dev/github.com/jaksi/sshutils

Documentation

Index

Constants

View Source
const (
	RSA = iota
	ECDSA
	Ed25519
)

Variables

View Source
var (
	ErrEstablishSSH = errors.New("failed to establish SSH connection")
	ErrSendRequest  = errors.New("failed to send request")
	ErrChannelOpen  = errors.New("failed to open channel")
)
View Source
var (
	ErrInvalidKey         = errors.New("invalid key")
	ErrInvalidKeyFile     = errors.New("invalid key file")
	ErrUnsupportedKeyType = errors.New("unsupported key type")
)

Functions

This section is empty.

Types

type CancelStreamlocalForwardRequestPayload added in v0.0.14

type CancelStreamlocalForwardRequestPayload streamlocalForwardRequestPayload

func (*CancelStreamlocalForwardRequestPayload) Marshal added in v0.0.14

func (payload *CancelStreamlocalForwardRequestPayload) Marshal() []byte

func (*CancelStreamlocalForwardRequestPayload) String added in v0.0.14

func (*CancelStreamlocalForwardRequestPayload) Unmarshal added in v0.0.14

func (payload *CancelStreamlocalForwardRequestPayload) Unmarshal(data []byte) error

type CancelTcpipForwardRequestPayload added in v0.0.2

type CancelTcpipForwardRequestPayload tcpipRequestPayload

func (*CancelTcpipForwardRequestPayload) Marshal added in v0.0.2

func (payload *CancelTcpipForwardRequestPayload) Marshal() []byte

func (*CancelTcpipForwardRequestPayload) String added in v0.0.2

func (payload *CancelTcpipForwardRequestPayload) String() string

func (*CancelTcpipForwardRequestPayload) Unmarshal added in v0.0.2

func (payload *CancelTcpipForwardRequestPayload) Unmarshal(data []byte) error

type Channel added in v0.0.2

type Channel struct {
	ssh.Channel
	Requests <-chan *ChannelRequest
	// contains filtered or unexported fields
}

func (*Channel) ChannelID added in v0.0.2

func (channel *Channel) ChannelID() string

func (*Channel) ChannelType added in v0.0.5

func (channel *Channel) ChannelType() string

func (*Channel) ConnMetadata added in v0.0.5

func (channel *Channel) ConnMetadata() ssh.ConnMetadata

func (*Channel) RawRequest added in v0.0.13

func (channel *Channel) RawRequest(name string, wantReply bool, payload []byte) (bool, error)

func (*Channel) Request added in v0.0.9

func (channel *Channel) Request(name string, wantReply bool, payload Payload) (bool, error)

func (*Channel) String added in v0.0.4

func (channel *Channel) String() string

type ChannelRequest added in v0.0.14

type ChannelRequest struct {
	*ssh.Request
	// contains filtered or unexported fields
}

func (*ChannelRequest) Channel added in v0.0.14

func (request *ChannelRequest) Channel() *Channel

func (*ChannelRequest) ConnMetadata added in v0.0.14

func (request *ChannelRequest) ConnMetadata() ssh.ConnMetadata

func (*ChannelRequest) String added in v0.0.14

func (request *ChannelRequest) String() string

func (*ChannelRequest) UnmarshalPayload added in v0.0.14

func (request *ChannelRequest) UnmarshalPayload() (Payload, error)

type Conn added in v0.0.2

type Conn struct {
	ssh.Conn
	NewChannels <-chan *NewChannel
	Requests    <-chan *GlobalRequest
	// contains filtered or unexported fields
}

func Dial added in v0.0.2

func Dial(address string, config *ssh.ClientConfig) (*Conn, error)

func (*Conn) Channel added in v0.0.13

func (conn *Conn) Channel(name string, payload Payload) (*Channel, error)

func (*Conn) RawChannel added in v0.0.13

func (conn *Conn) RawChannel(name string, payload []byte) (*Channel, error)

func (*Conn) RawRequest added in v0.0.13

func (conn *Conn) RawRequest(name string, wantReply bool, payload []byte) (bool, []byte, error)

func (*Conn) Request added in v0.0.9

func (conn *Conn) Request(name string, wantReply bool, payload Payload) (bool, []byte, error)

func (*Conn) String added in v0.0.4

func (conn *Conn) String() string

type DirectStreamlocalChannelPayload added in v0.0.14

type DirectStreamlocalChannelPayload struct {
	Path      string
	Reserved1 string
	Reserved2 uint32
}

func (*DirectStreamlocalChannelPayload) Marshal added in v0.0.14

func (payload *DirectStreamlocalChannelPayload) Marshal() []byte

func (*DirectStreamlocalChannelPayload) String added in v0.0.14

func (payload *DirectStreamlocalChannelPayload) String() string

func (*DirectStreamlocalChannelPayload) Unmarshal added in v0.0.14

func (payload *DirectStreamlocalChannelPayload) Unmarshal(data []byte) error

type DirectTcpipChannelPayload added in v0.0.2

type DirectTcpipChannelPayload struct {
	Address           string
	Port              uint32
	OriginatorAddress string
	OriginatorPort    uint32
}

func (*DirectTcpipChannelPayload) Marshal added in v0.0.2

func (payload *DirectTcpipChannelPayload) Marshal() []byte

func (*DirectTcpipChannelPayload) String added in v0.0.2

func (payload *DirectTcpipChannelPayload) String() string

func (*DirectTcpipChannelPayload) Unmarshal added in v0.0.2

func (payload *DirectTcpipChannelPayload) Unmarshal(data []byte) error

type EnvRequestPayload added in v0.0.2

type EnvRequestPayload struct {
	Name  string
	Value string
}

func (*EnvRequestPayload) Marshal added in v0.0.2

func (payload *EnvRequestPayload) Marshal() []byte

func (*EnvRequestPayload) String added in v0.0.2

func (payload *EnvRequestPayload) String() string

func (*EnvRequestPayload) Unmarshal added in v0.0.2

func (payload *EnvRequestPayload) Unmarshal(data []byte) error

type EowRequestPayload added in v0.0.14

type EowRequestPayload struct{}

func (*EowRequestPayload) Marshal added in v0.0.14

func (payload *EowRequestPayload) Marshal() []byte

func (*EowRequestPayload) String added in v0.0.14

func (payload *EowRequestPayload) String() string

func (*EowRequestPayload) Unmarshal added in v0.0.14

func (payload *EowRequestPayload) Unmarshal(data []byte) error

type ExecRequestPayload added in v0.0.2

type ExecRequestPayload struct {
	Command string
}

func (*ExecRequestPayload) Marshal added in v0.0.2

func (payload *ExecRequestPayload) Marshal() []byte

func (*ExecRequestPayload) String added in v0.0.2

func (payload *ExecRequestPayload) String() string

func (*ExecRequestPayload) Unmarshal added in v0.0.2

func (payload *ExecRequestPayload) Unmarshal(data []byte) error

type ExitSignalRequestPayload added in v0.0.14

type ExitSignalRequestPayload struct {
	Name       string
	CoreDumped bool
	Message    string
	Language   string
}

func (*ExitSignalRequestPayload) Marshal added in v0.0.14

func (payload *ExitSignalRequestPayload) Marshal() []byte

func (*ExitSignalRequestPayload) String added in v0.0.14

func (payload *ExitSignalRequestPayload) String() string

func (*ExitSignalRequestPayload) Unmarshal added in v0.0.14

func (payload *ExitSignalRequestPayload) Unmarshal(data []byte) error

type ExitStatusRequestPayload added in v0.0.2

type ExitStatusRequestPayload struct {
	ExitStatus uint32
}

func (*ExitStatusRequestPayload) Marshal added in v0.0.2

func (payload *ExitStatusRequestPayload) Marshal() []byte

func (*ExitStatusRequestPayload) String added in v0.0.2

func (payload *ExitStatusRequestPayload) String() string

func (*ExitStatusRequestPayload) Unmarshal added in v0.0.2

func (payload *ExitStatusRequestPayload) Unmarshal(data []byte) error

type ForwardedStreamlocalChannelPayload added in v0.0.14

type ForwardedStreamlocalChannelPayload struct {
	Path     string
	Reserved string
}

func (*ForwardedStreamlocalChannelPayload) Marshal added in v0.0.14

func (payload *ForwardedStreamlocalChannelPayload) Marshal() []byte

func (*ForwardedStreamlocalChannelPayload) String added in v0.0.14

func (payload *ForwardedStreamlocalChannelPayload) String() string

func (*ForwardedStreamlocalChannelPayload) Unmarshal added in v0.0.14

func (payload *ForwardedStreamlocalChannelPayload) Unmarshal(data []byte) error

type ForwardedTcpipChannelPayload added in v0.0.14

type ForwardedTcpipChannelPayload struct {
	Address           string
	Port              uint32
	OriginatorAddress string
	OriginatorPort    uint32
}

func (*ForwardedTcpipChannelPayload) Marshal added in v0.0.14

func (payload *ForwardedTcpipChannelPayload) Marshal() []byte

func (*ForwardedTcpipChannelPayload) String added in v0.0.14

func (payload *ForwardedTcpipChannelPayload) String() string

func (*ForwardedTcpipChannelPayload) Unmarshal added in v0.0.14

func (payload *ForwardedTcpipChannelPayload) Unmarshal(data []byte) error

type GlobalRequest added in v0.0.14

type GlobalRequest struct {
	*ssh.Request
	// contains filtered or unexported fields
}

func (*GlobalRequest) ConnMetadata added in v0.0.14

func (request *GlobalRequest) ConnMetadata() ssh.ConnMetadata

func (*GlobalRequest) String added in v0.0.14

func (request *GlobalRequest) String() string

func (*GlobalRequest) UnmarshalPayload added in v0.0.14

func (request *GlobalRequest) UnmarshalPayload() (Payload, error)

type HostKey added in v0.0.2

type HostKey struct {
	ssh.Signer
	// contains filtered or unexported fields
}

func GenerateHostKey

func GenerateHostKey(rand io.Reader, t KeyType) (*HostKey, error)

func LoadHostKey

func LoadHostKey(fileName string) (*HostKey, error)

func (*HostKey) Save added in v0.0.2

func (key *HostKey) Save(fileName string) error

func (*HostKey) String added in v0.0.2

func (key *HostKey) String() string

type HostkeysProveRequestPayload added in v0.0.2

type HostkeysProveRequestPayload hostkeysRequestPayload

func (*HostkeysProveRequestPayload) Marshal added in v0.0.2

func (payload *HostkeysProveRequestPayload) Marshal() []byte

func (*HostkeysProveRequestPayload) Response added in v0.0.2

func (payload *HostkeysProveRequestPayload) Response(
	rand io.Reader, hostKeys []*HostKey, sessionID []byte,
) ([]byte, error)

func (*HostkeysProveRequestPayload) String added in v0.0.2

func (payload *HostkeysProveRequestPayload) String() string

func (*HostkeysProveRequestPayload) Unmarshal added in v0.0.2

func (payload *HostkeysProveRequestPayload) Unmarshal(data []byte) error

func (*HostkeysProveRequestPayload) VerifyResponse added in v0.0.2

func (payload *HostkeysProveRequestPayload) VerifyResponse(response []byte, sessionID []byte) error

type HostkeysRequestPayload added in v0.0.2

type HostkeysRequestPayload hostkeysRequestPayload

func (*HostkeysRequestPayload) Marshal added in v0.0.2

func (payload *HostkeysRequestPayload) Marshal() []byte

func (*HostkeysRequestPayload) String added in v0.0.2

func (payload *HostkeysRequestPayload) String() string

func (*HostkeysRequestPayload) Unmarshal added in v0.0.2

func (payload *HostkeysRequestPayload) Unmarshal(data []byte) error

type KeyType added in v0.0.2

type KeyType int

func (KeyType) String added in v0.0.2

func (t KeyType) String() string

type Listener added in v0.0.7

type Listener struct {
	net.Listener
	// contains filtered or unexported fields
}

func Listen added in v0.0.2

func Listen(address string, config *ssh.ServerConfig) (*Listener, error)

func (*Listener) Accept added in v0.0.7

func (listener *Listener) Accept() (*Conn, error)

type NewChannel added in v0.0.2

type NewChannel struct {
	ssh.NewChannel
	// contains filtered or unexported fields
}

func (*NewChannel) AcceptChannel added in v0.0.4

func (newChannel *NewChannel) AcceptChannel() (*Channel, error)

func (*NewChannel) ConnMetadata added in v0.0.5

func (newChannel *NewChannel) ConnMetadata() ssh.ConnMetadata

func (*NewChannel) String added in v0.0.4

func (newChannel *NewChannel) String() string

func (*NewChannel) UnmarshalPayload added in v0.0.14

func (newChannel *NewChannel) UnmarshalPayload() (Payload, error)

type NoMoreSessionsRequestPayload added in v0.0.2

type NoMoreSessionsRequestPayload struct{}

func (*NoMoreSessionsRequestPayload) Marshal added in v0.0.2

func (payload *NoMoreSessionsRequestPayload) Marshal() []byte

func (*NoMoreSessionsRequestPayload) String added in v0.0.2

func (payload *NoMoreSessionsRequestPayload) String() string

func (*NoMoreSessionsRequestPayload) Unmarshal added in v0.0.2

func (payload *NoMoreSessionsRequestPayload) Unmarshal(data []byte) error

type Payload added in v0.0.2

type Payload interface {
	fmt.Stringer
	Unmarshal(data []byte) error
	Marshal() []byte
}

func UnmarshalChannelRequestPayload added in v0.0.2

func UnmarshalChannelRequestPayload(request *ssh.Request) (Payload, error)

func UnmarshalGlobalRequestPayload added in v0.0.2

func UnmarshalGlobalRequestPayload(request *ssh.Request) (Payload, error)

func UnmarshalNewChannelPayload added in v0.0.2

func UnmarshalNewChannelPayload(newChannel ssh.NewChannel) (Payload, error)

type PtyRequestPayload added in v0.0.2

type PtyRequestPayload struct {
	Term          string
	Width         uint32
	Height        uint32
	WidthPx       uint32
	HeightPx      uint32
	TerminalModes ssh.TerminalModes
}

func (*PtyRequestPayload) Marshal added in v0.0.2

func (payload *PtyRequestPayload) Marshal() []byte

func (*PtyRequestPayload) String added in v0.0.2

func (payload *PtyRequestPayload) String() string

func (*PtyRequestPayload) Unmarshal added in v0.0.2

func (payload *PtyRequestPayload) Unmarshal(data []byte) error

type PublicKeys added in v0.0.2

type PublicKeys []ssh.PublicKey

func (PublicKeys) String added in v0.0.2

func (publicKeys PublicKeys) String() string

type RawPayload added in v0.0.14

type RawPayload []byte

func (*RawPayload) Marshal added in v0.0.14

func (p *RawPayload) Marshal() []byte

func (*RawPayload) String added in v0.0.14

func (p *RawPayload) String() string

func (*RawPayload) Unmarshal added in v0.0.14

func (p *RawPayload) Unmarshal(data []byte) error

type SessionChannelPayload added in v0.0.2

type SessionChannelPayload struct{}

func (*SessionChannelPayload) Marshal added in v0.0.2

func (payload *SessionChannelPayload) Marshal() []byte

func (*SessionChannelPayload) String added in v0.0.2

func (payload *SessionChannelPayload) String() string

func (*SessionChannelPayload) Unmarshal added in v0.0.2

func (payload *SessionChannelPayload) Unmarshal(data []byte) error

type ShellRequestPayload added in v0.0.2

type ShellRequestPayload struct{}

func (*ShellRequestPayload) Marshal added in v0.0.2

func (payload *ShellRequestPayload) Marshal() []byte

func (*ShellRequestPayload) String added in v0.0.2

func (payload *ShellRequestPayload) String() string

func (*ShellRequestPayload) Unmarshal added in v0.0.2

func (payload *ShellRequestPayload) Unmarshal(data []byte) error

type SignalRequestPayload added in v0.0.14

type SignalRequestPayload struct {
	Name string
}

func (*SignalRequestPayload) Marshal added in v0.0.14

func (payload *SignalRequestPayload) Marshal() []byte

func (*SignalRequestPayload) String added in v0.0.14

func (payload *SignalRequestPayload) String() string

func (*SignalRequestPayload) Unmarshal added in v0.0.14

func (payload *SignalRequestPayload) Unmarshal(data []byte) error

type StreamlocalForwardRequestPayload added in v0.0.14

type StreamlocalForwardRequestPayload streamlocalForwardRequestPayload

func (*StreamlocalForwardRequestPayload) Marshal added in v0.0.14

func (payload *StreamlocalForwardRequestPayload) Marshal() []byte

func (*StreamlocalForwardRequestPayload) String added in v0.0.14

func (payload *StreamlocalForwardRequestPayload) String() string

func (*StreamlocalForwardRequestPayload) Unmarshal added in v0.0.14

func (payload *StreamlocalForwardRequestPayload) Unmarshal(data []byte) error

type SubsystemRequestPayload added in v0.0.2

type SubsystemRequestPayload struct {
	Subsystem string
}

func (*SubsystemRequestPayload) Marshal added in v0.0.2

func (payload *SubsystemRequestPayload) Marshal() []byte

func (*SubsystemRequestPayload) String added in v0.0.2

func (payload *SubsystemRequestPayload) String() string

func (*SubsystemRequestPayload) Unmarshal added in v0.0.2

func (payload *SubsystemRequestPayload) Unmarshal(data []byte) error

type TcpipForwardRequestPayload added in v0.0.2

type TcpipForwardRequestPayload tcpipRequestPayload

func (*TcpipForwardRequestPayload) Marshal added in v0.0.2

func (payload *TcpipForwardRequestPayload) Marshal() []byte

func (*TcpipForwardRequestPayload) Response added in v0.0.2

func (payload *TcpipForwardRequestPayload) Response(port uint32) []byte

func (*TcpipForwardRequestPayload) String added in v0.0.2

func (payload *TcpipForwardRequestPayload) String() string

func (*TcpipForwardRequestPayload) Unmarshal added in v0.0.2

func (payload *TcpipForwardRequestPayload) Unmarshal(data []byte) error

type TunChannelMode added in v0.0.14

type TunChannelMode uint32
const (
	TunChannelModePointToPoint TunChannelMode = 1
	TunChannelModeEthernet     TunChannelMode = 2
)

func (TunChannelMode) String added in v0.0.14

func (mode TunChannelMode) String() string

type TunChannelPayload added in v0.0.14

type TunChannelPayload struct {
	TunnelMode TunChannelMode
	Interface  uint32
}

func (*TunChannelPayload) Marshal added in v0.0.14

func (payload *TunChannelPayload) Marshal() []byte

func (*TunChannelPayload) String added in v0.0.14

func (payload *TunChannelPayload) String() string

func (*TunChannelPayload) Unmarshal added in v0.0.14

func (payload *TunChannelPayload) Unmarshal(data []byte) error

type UnknownPayload added in v0.0.14

type UnknownPayload struct {
	RawPayload
	RequestType string
}

func (*UnknownPayload) String added in v0.0.14

func (payload *UnknownPayload) String() string

type WindowChangeRequestPayload added in v0.0.2

type WindowChangeRequestPayload struct {
	Width    uint32
	Height   uint32
	WidthPx  uint32
	HeightPx uint32
}

func (*WindowChangeRequestPayload) Marshal added in v0.0.2

func (payload *WindowChangeRequestPayload) Marshal() []byte

func (*WindowChangeRequestPayload) String added in v0.0.2

func (payload *WindowChangeRequestPayload) String() string

func (*WindowChangeRequestPayload) Unmarshal added in v0.0.2

func (payload *WindowChangeRequestPayload) Unmarshal(data []byte) error

type X11ChannelPayload added in v0.0.14

type X11ChannelPayload struct {
	OriginatorAddress string
	OriginatorPort    uint32
}

func (*X11ChannelPayload) Marshal added in v0.0.14

func (payload *X11ChannelPayload) Marshal() []byte

func (*X11ChannelPayload) String added in v0.0.14

func (payload *X11ChannelPayload) String() string

func (*X11ChannelPayload) Unmarshal added in v0.0.14

func (payload *X11ChannelPayload) Unmarshal(data []byte) error

type X11RequestPayload added in v0.0.2

type X11RequestPayload struct {
	SingleConnection       bool
	AuthenticationProtocol string
	AuthenticationCookie   string
	ScreenNumber           uint32
}

func (*X11RequestPayload) Marshal added in v0.0.2

func (payload *X11RequestPayload) Marshal() []byte

func (*X11RequestPayload) String added in v0.0.2

func (payload *X11RequestPayload) String() string

func (*X11RequestPayload) Unmarshal added in v0.0.2

func (payload *X11RequestPayload) Unmarshal(data []byte) error

type XonXoffRequestPayload added in v0.0.14

type XonXoffRequestPayload struct {
	ClientCanDo bool
}

func (*XonXoffRequestPayload) Marshal added in v0.0.14

func (payload *XonXoffRequestPayload) Marshal() []byte

func (*XonXoffRequestPayload) String added in v0.0.14

func (payload *XonXoffRequestPayload) String() string

func (*XonXoffRequestPayload) Unmarshal added in v0.0.14

func (payload *XonXoffRequestPayload) Unmarshal(data []byte) error

Jump to

Keyboard shortcuts

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