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