Help us shape the future of Go! Take the 2026 Go Developer Survey

sshc

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2025 License: MIT, MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	STATUS_CONNECTING = "Connecting..."
	STATUS_CONNECTED  = "Connected"
	STATUS_CLOSED     = "Closed"
)

The ssh connection available statuses

View Source
const DEFAULT_DNS_SERVER = "1.1.1.1:53"

Variables

This section is empty.

Functions

This section is empty.

Types

type DnsProxy

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

func NewDnsProxy

func NewDnsProxy(sshConn *SshConnection, conf *DnsProxyConf) *DnsProxy

func (*DnsProxy) Start

func (p *DnsProxy) Start() error

type DnsProxyConf

type DnsProxyConf struct {
	ListenAddress    string  `yaml:"listen_address"`
	RemoteDnsAddress *string `yaml:"remote_dns_address"`
	// use a dedicated ssh client. if nil use the global one
	SshClientConf *SshClientConf `yaml:"sshclient"`
}

type JumpHostConf

type JumpHostConf struct {
	// user@server:port
	URI      string `yaml:"uri"`
	Identity string `yaml:"identity"`
	Password string `yaml:"password"`
}

JumpHostConf holds a jump host configuration

type ProgressFunc

type ProgressFunc func(fileSize int64, offset int64, fileName string, progressChan chan int64)

type RemoteShell

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

RemoteShell handles remote shell connections. It uses an ssh connection object and requests a shell inside a pty to the remote server

func NewRemoteShell

func NewRemoteShell(sshConn *SshConnection) *RemoteShell

NewRemoteShell creates a new RemoteShell object

func (*RemoteShell) Start

func (rs *RemoteShell) Start(cmd string, requestPty bool) error

Start starts the remote shell

func (*RemoteShell) Stop

func (rs *RemoteShell) Stop()

Stop stops the remote shell

type SftpClient

type SftpClient struct {
	Client *sftp.Client
	// contains filtered or unexported fields
}

func NewSftpClient

func NewSftpClient(sshConnection *SshConnection) *SftpClient

func (*SftpClient) GetFile

func (s *SftpClient) GetFile(remote, localPath string, maxWorkers int, progressFn *ProgressFunc) error

func (*SftpClient) PutFile

func (s *SftpClient) PutFile(remote, localPath string, maxWorkers int, progressFn *ProgressFunc) error

func (*SftpClient) ReadyWait

func (s *SftpClient) ReadyWait()

Waits until the connection is estabilished with the server

func (*SftpClient) Start

func (s *SftpClient) Start()

func (*SftpClient) Stop

func (s *SftpClient) Stop()

type SocksProxy

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

func NewSocksProxy

func NewSocksProxy(sshConn *SshConnection) *SocksProxy

func (*SocksProxy) Start

func (p *SocksProxy) Start(socksAddress string) error

Start starts the local socks proxy

type SocksProxyConf

type SocksProxyConf struct {
	ListenAddress string `yaml:"listen_address"`
	// use a dedicated ssh client. if nil use the global one
	SshClientConf *SshClientConf `yaml:"sshclient"`
}

type SshClientConf

type SshClientConf struct {
	Identity   string `yaml:"identity"`
	Password   string `yaml:"password"`
	KnownHosts string `yaml:"known_hosts"`
	ServerURI  string `yaml:"server"`
	// it this value is true host keys are not checked
	// against known_hosts file
	Insecure  bool            `yaml:"insecure"`
	Quiet     bool            `yaml:"quiet"`
	JumpHosts []*JumpHostConf `yaml:"jump_hosts"`
}

SshClientConf holds the ssh client configuration

func (*SshClientConf) GetServerEndpoint

func (c *SshClientConf) GetServerEndpoint() *utils.Endpoint

GetServerEndpoint Builds a server endpoint object from the Server string

type SshConnection

type SshConnection struct {
	Client *ssh.Client
	// contains filtered or unexported fields
}

SshConnection implements an ssh client

func NewSshConnection

func NewSshConnection(conf *SshClientConf) *SshConnection

NewSshConnection creates a new SshConnection instance

func (*SshConnection) GetConnectionStatus

func (s *SshConnection) GetConnectionStatus() string

GetConnectionStatus returns the current connection status as a string

func (*SshConnection) GrabPubKey

func (s *SshConnection) GrabPubKey()

GrabPubKey is an helper function that gets server pubkey

func (*SshConnection) ReadyWait

func (s *SshConnection) ReadyWait()

Waits until the connection is estabilished with the server

func (*SshConnection) Start

func (s *SshConnection) Start()

Start connects the ssh client to the remote server and keeps it connected sending keep alive packet and reconnecting in the event of network failures

func (*SshConnection) Stop

func (s *SshConnection) Stop()

Stop closes the ssh conn instance client connection

Jump to

Keyboard shortcuts

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