func runRemoteCommand(member service.ClusterMember, userName string, log *logging.Logger, command, stdin string, quiet bool) (string, error) { hostAddress := member.ClusterIP cmd := exec.Command("ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", userName+"@"+hostAddress, command) var stdOut, stdErr bytes.Buffer cmd.Stdout = &stdOut cmd.Stderr = &stdErr if stdin != "" { cmd.Stdin = strings.NewReader(stdin) } if err := cmd.Run(); err != nil { if !quiet { log.Errorf("SSH failed: %s %s", cmd.Path, strings.Join(cmd.Args, " ")) } return "", errgo.NoteMask(err, stdErr.String()) } out := stdOut.String() out = strings.TrimSuffix(out, "\n") return out, nil }