| 41 | } |
| 42 | |
| 43 | func SshRemoteRunCommand(sshClient *ssh.Client, command string) (string, error) { |
| 44 | session, err := sshClient.NewSession() |
| 45 | if err != nil { |
| 46 | return "", err |
| 47 | } |
| 48 | defer session.Close() |
| 49 | var buf bytes.Buffer |
| 50 | session.Stdout = &buf |
| 51 | err = session.Run(command) |
| 52 | logString := buf.String() |
| 53 | //logrus.WithField("CMD:", command).Info(logString) |
| 54 | if err != nil { |
| 55 | return logString, fmt.Errorf("CMD: %s OUT: %s ERROR: %s", command, logString, err) |
| 56 | } |
| 57 | return logString, err |
| 58 | } |
| 59 | func NewSshClientConfig(sshUser, sshPassword, sshType, sshKey, sshKeyPassword string) (config *ssh.ClientConfig, err error) { |
| 60 | if sshUser == "" { |
| 61 | return nil, errors.New("ssh_user can not be empty") |