Documentation ¶
Index ¶
- Constants
- Variables
- func AddKnownHost(host string, key ssh.PublicKey, knownFile string) (err error)
- func AsExport(env []string) string
- func CalcForks(batch int, forks uint32) int
- func CalcFreeForks(batch int, tasks int, forks uint32) int
- 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(identityFile string) (ssh.Signer, error)
- func Line(address string, key ssh.PublicKey) string
- func PrefixTemplate(prefix string, data PrefixData) (string, error)
- func PrintHeader(value string, ts dao.Text, padding bool)
- 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 LocalSession
- type LocalhostClient
- func (c *LocalhostClient) Close(i int) error
- func (c *LocalhostClient) Connect(dialer SSHDialFunc, _ bool, _ string, _ uint, mu *sync.Mutex) *ErrConnect
- func (c *LocalhostClient) Connected() bool
- func (c *LocalhostClient) GetName() string
- func (c *LocalhostClient) Prefix() (string, string, string, uint16)
- func (c *LocalhostClient) Run(i int, env []string, workDir string, shell string, cmdStr string) error
- func (c *LocalhostClient) Signal(i int, sig os.Signal) error
- func (c *LocalhostClient) Stderr(i int) io.Reader
- func (c *LocalhostClient) Stdin(i int) io.WriteCloser
- func (c *LocalhostClient) Stdout(i int) io.Reader
- func (c *LocalhostClient) Wait(i int) error
- func (c *LocalhostClient) Write(i int, p []byte) (n int, err error)
- func (c *LocalhostClient) WriteClose(i int) error
- type PrefixData
- 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) ParseTaskTarget(runFlags *core.RunFlags, setRunFlags *core.SetRunFlags)
- func (run *Run) RunTask(userArgs []string, runFlags *core.RunFlags, setRunFlags *core.SetRunFlags) error
- func (run *Run) SetClients(task *dao.Task, runFlags *core.RunFlags, numChannels int, clientCh chan Client, ...) ([]ErrConnect, error)
- func (run *Run) Table(dryRun bool) (dao.TableOutput, dao.ReportData, error)
- func (run *Run) Text(dryRun bool) (dao.ReportData, error)
- type SSHClient
- func (c *SSHClient) Close(i int) error
- func (c *SSHClient) Connect(dialer SSHDialFunc, disableVerifyHost bool, knownHostsFile string, ...) *ErrConnect
- func (c *SSHClient) ConnectWith(dialer SSHDialFunc, disableVerifyHost bool, knownHostsFile string, ...) *ErrConnect
- func (c *SSHClient) Connected() bool
- func (c *SSHClient) DialThrough(net, addr string, config *ssh.ClientConfig) (*ssh.Client, error)
- func (c *SSHClient) GetName() string
- func (c *SSHClient) Prefix() (string, string, string, uint16)
- func (c *SSHClient) Run(i int, env []string, workDir string, shell string, cmdStr string) error
- func (c *SSHClient) Signal(i int, sig os.Signal) error
- func (c *SSHClient) Stderr(i int) io.Reader
- func (c *SSHClient) Stdin(i int) io.WriteCloser
- func (c *SSHClient) Stdout(i int) io.Reader
- func (c *SSHClient) Wait(i int) error
- func (c *SSHClient) Write(i int, p []byte) (n int, err error)
- func (c *SSHClient) WriteClose(i int) error
- type SSHDialFunc
- type SSHSession
- type ServerTask
- type Signers
- type TaskContext
- type TaskOption
Constants ¶
const ( No = iota Yes Continue )
Variables ¶
var ResetColor = "\033[0m"
Functions ¶
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 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 PrefixTemplate ¶ added in v0.14.0
func PrefixTemplate(prefix string, data PrefixData) (string, error)
func SSHToServer ¶
func SSHToServer(host string, user string, port uint16, bastion string, disableVerifyHost bool, knownHostFile string) error {
Types ¶
type Client ¶
type Client interface { Connect(SSHDialFunc, bool, string, uint, *sync.Mutex) *ErrConnect Run(int, []string, string, string, string) error Wait(int) error Close(int) error Write(int, []byte) (n int, err error) WriteClose(int) error Stdin(int) io.WriteCloser Stderr(int) io.Reader Stdout(int) io.Reader Signal(int, os.Signal) error GetName() string Prefix() (string, string, string, uint16) Connected() bool }
type ErrConnect ¶
func ParseServers ¶ added in v0.11.0
func ParseServers( sshConfigFile *string, servers *[]dao.Server, runFlags *core.RunFlags, order string, ) ([]ErrConnect, error)
ParseServers resolves host, port, proxyjump in user ssh config
func (*ErrConnect) Error ¶ added in v0.10.3
func (e *ErrConnect) Error() string
type HeaderData ¶ added in v0.10.0
type LocalSession ¶ added in v0.13.0
type LocalSession struct {
// contains filtered or unexported fields
}
type LocalhostClient ¶
type LocalhostClient struct { Name string User string Host string Port uint16 Sessions []LocalSession }
Client is a wrapper over the SSH connection/Sessions.
func (*LocalhostClient) Close ¶
func (c *LocalhostClient) Close(i int) error
func (*LocalhostClient) Connect ¶
func (c *LocalhostClient) Connect(dialer SSHDialFunc, _ bool, _ string, _ uint, mu *sync.Mutex) *ErrConnect
func (*LocalhostClient) Connected ¶ added in v0.13.0
func (c *LocalhostClient) Connected() bool
func (*LocalhostClient) GetName ¶ added in v0.10.2
func (c *LocalhostClient) GetName() string
func (*LocalhostClient) Prefix ¶
func (c *LocalhostClient) Prefix() (string, string, string, uint16)
func (*LocalhostClient) Stdin ¶
func (c *LocalhostClient) Stdin(i int) io.WriteCloser
func (*LocalhostClient) Wait ¶
func (c *LocalhostClient) Wait(i int) error
func (*LocalhostClient) WriteClose ¶
func (c *LocalhostClient) WriteClose(i int) error
type PrefixData ¶ added in v0.14.0
type Run ¶
type Run struct { LocalClients map[string]Client RemoteClients map[string]Client Servers []dao.Server UnreachableServers []dao.Server Task *dao.Task Config dao.Config }
func (*Run) CheckTaskNoColor ¶
func (run *Run) CheckTaskNoColor()
func (*Run) CleanupClients ¶
func (run *Run) CleanupClients()
func (*Run) ParseTaskTarget ¶ added in v0.13.0
func (run *Run) ParseTaskTarget( runFlags *core.RunFlags, setRunFlags *core.SetRunFlags, )
func (*Run) SetClients ¶
func (run *Run) SetClients( task *dao.Task, runFlags *core.RunFlags, numChannels int, clientCh chan Client, errCh chan ErrConnect, ) ([]ErrConnect, error)
SetClients establishes connection to server
func (*Run) Table ¶
func (run *Run) Table(dryRun bool) (dao.TableOutput, dao.ReportData, error)
type SSHClient ¶
type SSHClient struct { Name string User string Host string Port uint16 IdentityFile string Password string AuthMethod []ssh.AuthMethod Sessions []SSHSession // contains filtered or unexported fields }
Client is a wrapper over the SSH connection/sessions.
func (*SSHClient) Connect ¶
func (c *SSHClient) Connect( dialer SSHDialFunc, disableVerifyHost bool, knownHostsFile string, defaultTimeout uint, mu *sync.Mutex, ) *ErrConnect
Connect creates SSH connection to a specified host.
func (*SSHClient) ConnectWith ¶
func (c *SSHClient) ConnectWith( dialer SSHDialFunc, disableVerifyHost bool, knownHostsFile string, defaultTimeout uint, 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) 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 SSHSession ¶ added in v0.13.0
type SSHSession struct {
// contains filtered or unexported fields
}
type ServerTask ¶ added in v0.13.0
type TaskContext ¶
type TaskContext struct {
// contains filtered or unexported fields
}
type TaskOption ¶ added in v0.13.0
type TaskOption int
func StepTaskExecute ¶ added in v0.13.0
TODO: Prompt again when invalid answer