func (h *Host) CreateSSHClient() (ssh.Client, error) { addr, err := h.Driver.GetSSHHostname() if err != nil { return ssh.ExternalClient{}, err } port, err := h.Driver.GetSSHPort() if err != nil { return ssh.ExternalClient{}, err } auth := &ssh.Auth{ Keys: []string{h.Driver.GetSSHKeyPath()}, } return ssh.NewClient(h.Driver.GetSSHUsername(), addr, port, auth) }
func (c *ComputeUtil) executeCommands(commands []string, ip, sshKeyPath string) error { for _, command := range commands { auth := &ssh.Auth{ Keys: []string{sshKeyPath}, } client, err := ssh.NewClient(c.userName, ip, 22, auth) if err != nil { return err } if _, err := client.Output(command); err != nil { return err } } return nil }
func GetSSHClientFromDriver(d Driver) (ssh.Client, error) { addr, err := d.GetSSHHostname() if err != nil { return nil, err } port, err := d.GetSSHPort() if err != nil { return nil, err } auth := &ssh.Auth{ Keys: []string{d.GetSSHKeyPath()}, } client, err := ssh.NewClient(d.GetSSHUsername(), addr, port, auth) return client, err }