// NewSSHClient returns an SSH client object for running commands. func NewSSHClient(d drivers.Driver) (*ssh.Client, error) { h, err := newSSHHost(d) if err != nil { return nil, errors.Wrap(err, "Error creating new ssh host from driver") } auth := &machinessh.Auth{} if h.SSHKeyPath != "" { auth.Keys = []string{h.SSHKeyPath} } config, err := machinessh.NewNativeConfig(h.Username, auth) if err != nil { return nil, errors.Wrapf(err, "Error creating new native config from ssh using: %s, %s", h.Username, auth) } client, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", h.IP, h.Port), &config) if err != nil { return nil, errors.Wrap(err, "Error dialing tcp via ssh client") } return client, nil }
// NewSSHClient returns an SSH client object for running commands. func NewSSHClient(d drivers.Driver) (*ssh.Client, error) { h, err := newSSHHost(d) if err != nil { return nil, err } auth := &machinessh.Auth{} if h.SSHKeyPath != "" { auth.Keys = []string{h.SSHKeyPath} } config, err := machinessh.NewNativeConfig(h.Username, auth) if err != nil { return nil, err } client, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", h.IP, h.Port), &config) if err != nil { return nil, err } return client, nil }