Documentation ¶
Index ¶
- Variables
- func AddKnownHost(host string, remote net.Addr, key ssh.PublicKey, knownFile string) (err error)
- func AsExport(env []string) string
- func CheckKnownHost(host string, remote net.Addr, key ssh.PublicKey, knownFile string) (found bool, err error)
- func ExecTTY(cmd string, envs []string) error
- func FingerprintSHA256(b []byte) string
- func GetFingerprintPubKey(server dao.Server) (string, error)
- func GetPasswordAuth(server dao.Server) (ssh.AuthMethod, error)
- func GetPasswordIdentitySigner(server dao.Server) (ssh.Signer, error)
- func GetSSHAgentSigners() ([]ssh.Signer, error)
- func GetSigner(server dao.Server) (ssh.Signer, error)
- func HeaderTemplate(header string, data HeaderData) (string, error)
- func Line(address string, key ssh.PublicKey) string
- func RunTableCmd(t TaskContext, data dao.TableOutput, dataMutex *sync.RWMutex, ...) error
- func RunTextCmd(t TaskContext, textStyle dao.Text, prefix string, parallel bool, ...) error
- func SSHToServer(server dao.Server, disableVerifyHost bool, knownHostFile string) error
- func VerifyHost(knownHostsFile string, mu *sync.Mutex, host string, remote net.Addr, ...) error
- type Client
- type ErrConnect
- type HeaderData
- type Identity
- type LocalhostClient
- func (c *LocalhostClient) Close() error
- func (c *LocalhostClient) Connect(_ bool, _ string, mu *sync.Mutex, dialer SSHDialFunc) *ErrConnect
- func (c *LocalhostClient) GetName() string
- func (c *LocalhostClient) Prefix() string
- func (c *LocalhostClient) Run(env []string, workDir string, shell string, cmdStr string) error
- func (c *LocalhostClient) Signal(sig os.Signal) error
- func (c *LocalhostClient) Stderr() io.Reader
- func (c *LocalhostClient) Stdin() io.WriteCloser
- func (c *LocalhostClient) Stdout() io.Reader
- func (c *LocalhostClient) Wait() error
- func (c *LocalhostClient) Write(p []byte) (n int, err error)
- func (c *LocalhostClient) WriteClose() error
- type Run
- func (run *Run) CheckTaskNoColor()
- func (run *Run) CleanupClients()
- func (run *Run) ParseTask(configEnv []string, userArgs []string, runFlags *core.RunFlags, ...) error
- func (run *Run) RunTask(userArgs []string, runFlags *core.RunFlags, setRunFlags *core.SetRunFlags) error
- func (run *Run) SetClients(runFlags *core.RunFlags, numChannels int, clientCh chan Client, ...) ([]ErrConnect, error)
- func (run *Run) Table(dryRun bool) (dao.TableOutput, error)
- func (run *Run) TableWork(rIndex int, dryRun bool, data dao.TableOutput, dataMutex *sync.RWMutex) error
- func (run *Run) Text(dryRun bool) error
- func (run *Run) TextWork(rIndex int, prefixMaxLen int, dryRun bool) error
- type SSHClient
- func (c *SSHClient) Close() error
- func (c *SSHClient) Connect(disableVerifyHost bool, knownHostsFile string, mu *sync.Mutex, ...) *ErrConnect
- func (c *SSHClient) ConnectWith(dialer SSHDialFunc, disableVerifyHost bool, knownHostsFile string, ...) *ErrConnect
- func (c *SSHClient) DialThrough(net, addr string, config *ssh.ClientConfig) (*ssh.Client, error)
- func (c *SSHClient) GetName() string
- func (c *SSHClient) Prefix() string
- func (c *SSHClient) Run(env []string, workDir string, shell string, cmdStr string) error
- func (c *SSHClient) Signal(sig os.Signal) error
- func (c *SSHClient) Stderr() io.Reader
- func (c *SSHClient) Stdin() io.WriteCloser
- func (c *SSHClient) Stdout() io.Reader
- func (c *SSHClient) Wait() error
- func (c *SSHClient) Write(p []byte) (n int, err error)
- func (c *SSHClient) WriteClose() error
- type SSHDialFunc
- type Signers
- type TaskContext
Constants ¶
This section is empty.
Variables ¶
var DefaultTimeout = 20 * time.Second
var ResetColor = "\033[0m"
Functions ¶
func AddKnownHost ¶
func AsExport ¶
Process all ENVs into a string of form Example output: export FOO="bar"; export BAR="baz";
func CheckKnownHost ¶
func FingerprintSHA256 ¶ added in v0.12.0
func GetFingerprintPubKey ¶ added in v0.12.0
func GetPasswordAuth ¶ added in v0.10.3
func GetPasswordAuth(server dao.Server) (ssh.AuthMethod, error)
func GetPasswordIdentitySigner ¶ added in v0.12.0
Password protected key
func GetSSHAgentSigners ¶ added in v0.10.3
func HeaderTemplate ¶ added in v0.10.0
func HeaderTemplate(header string, data HeaderData) (string, error)
func Line ¶ added in v0.10.0
TODO: Replace this method with known_hosts Line method when issue with ip6 formats is fixed. Supported Host formats:
172.24.2.3 172.24.2.3:333 # custom port 2001:3984:3989::10 [2001:3984:3989::10]:333 # custom port
func RunTableCmd ¶
func RunTableCmd(t TaskContext, data dao.TableOutput, dataMutex *sync.RWMutex, wg *sync.WaitGroup) error
func RunTextCmd ¶
func SSHToServer ¶
func SSHToServer(host string, user string, port uint16, bastion string, disableVerifyHost bool, knownHostFile string) error {
Types ¶
type Client ¶
type Client interface { Connect(bool, string, *sync.Mutex, SSHDialFunc) *ErrConnect Run([]string, string, string, string) error Wait() error Close() error Prefix() string Write(p []byte) (n int, err error) WriteClose() error Stdin() io.WriteCloser Stderr() io.Reader Stdout() io.Reader Signal(os.Signal) error GetName() string }
type ErrConnect ¶
func ParseServers ¶ added in v0.11.0
func ParseServers(sshConfigFile *string, servers *[]dao.Server, runFlags *core.RunFlags) ([]ErrConnect, error)
ParseServers resolves host, port, proxyjump in users ssh config
func (*ErrConnect) Error ¶ added in v0.10.3
func (e *ErrConnect) Error() string
type HeaderData ¶ added in v0.10.0
type LocalhostClient ¶
type LocalhostClient struct { Name string User string Host string // contains filtered or unexported fields }
Client is a wrapper over the SSH connection/sessions.
func (*LocalhostClient) Close ¶
func (c *LocalhostClient) Close() error
func (*LocalhostClient) Connect ¶
func (c *LocalhostClient) Connect(_ bool, _ string, mu *sync.Mutex, dialer SSHDialFunc) *ErrConnect
func (*LocalhostClient) GetName ¶ added in v0.10.2
func (c *LocalhostClient) GetName() string
func (*LocalhostClient) Prefix ¶
func (c *LocalhostClient) Prefix() string
func (*LocalhostClient) Stderr ¶
func (c *LocalhostClient) Stderr() io.Reader
func (*LocalhostClient) Stdin ¶
func (c *LocalhostClient) Stdin() io.WriteCloser
func (*LocalhostClient) Stdout ¶
func (c *LocalhostClient) Stdout() io.Reader
func (*LocalhostClient) Wait ¶
func (c *LocalhostClient) Wait() error
func (*LocalhostClient) WriteClose ¶
func (c *LocalhostClient) WriteClose() error
type Run ¶
type Run struct { LocalClients map[string]Client RemoteClients map[string]Client Servers []dao.Server Task *dao.Task Config dao.Config }
func (*Run) CheckTaskNoColor ¶
func (run *Run) CheckTaskNoColor()
func (*Run) CleanupClients ¶
func (run *Run) CleanupClients()
func (*Run) SetClients ¶
func (run *Run) SetClients( runFlags *core.RunFlags, numChannels int, clientCh chan Client, errCh chan ErrConnect, ) ([]ErrConnect, error)
SetClients establishes connection to server
type SSHClient ¶
type SSHClient struct { Name string User string Host string Port uint16 IdentityFile string Password string AuthMethod []ssh.AuthMethod // contains filtered or unexported fields }
Client is a wrapper over the SSH connection/sessions.
func (*SSHClient) Connect ¶
func (c *SSHClient) Connect(disableVerifyHost bool, knownHostsFile string, mu *sync.Mutex, dialer SSHDialFunc) *ErrConnect
Connect creates SSH connection to a specified host.
func (*SSHClient) ConnectWith ¶
func (c *SSHClient) ConnectWith(dialer SSHDialFunc, disableVerifyHost bool, knownHostsFile string, mu *sync.Mutex) *ErrConnect
ConnectWith creates a SSH connection to a specified host. It will use dialer to establish the connection.
func (*SSHClient) DialThrough ¶
DialThrough will create a new connection from the ssh server c is connected to. DialThrough is an SSHDialer.
func (*SSHClient) Stdin ¶
func (c *SSHClient) Stdin() io.WriteCloser
func (*SSHClient) Wait ¶
Wait waits until the remote command finishes and exits. It closes the SSH session.
func (*SSHClient) WriteClose ¶
type SSHDialFunc ¶
SSHDialFunc can dial an ssh server and return a client
type TaskContext ¶
type TaskContext struct {
// contains filtered or unexported fields
}