var sshOptions … var sshEnv … var sshKey … var sshUser … var sshOptionsMap … var sshDefaultKeyMap … var sshDefaultUserMap … func init() { … } var hostnameIPOverrides … // AddHostnameIP adds <hostname,ip> pair into hostnameIPOverrides map. func AddHostnameIP(hostname, ip string) { … } var sshKeyOverrides … // AddSSHKey adds a <hosrtname,path to SSH private key> pair into the sshKeyOverrides map func AddSSHKey(hostname, keyFilePath string) { … } // GetSSHUser returns the ssh-user CLI flag, the KUBE_SSH_USER environment variable, or the default ssh user // for the ssh environment in that order func GetSSHUser() string { … } // GetHostnameOrIP converts hostname into ip and apply user if necessary. func GetHostnameOrIP(hostname string) string { … } // getSSHCommand handles proper quoting so that multiple commands are executed in the same shell over ssh func getSSHCommand(sep string, args ...string) string { … } // SSH executes ssh command with runSSHCommand as root. The `sudo` makes sure that all commands // are executed by root, so that there won't be permission mismatch between different commands. func SSH(host string, cmd ...string) (string, error) { … } // SSHNoSudo executes ssh command with runSSHCommand as normal user. Sometimes we need this, // for example creating a directory that we'll copy files there with scp. func SSHNoSudo(host string, cmd ...string) (string, error) { … } // runSSHCommand executes the ssh or scp command, adding the flag provided --ssh-options func runSSHCommand(host, cmd string, args ...string) (string, error) { … } // getPrivateSSHKey returns the path to ssh private key func getPrivateSSHKey(host string) (string, error) { … }