package ssh import ( "fmt" "strings" ) // Fatal is a error output wrapper which aims to make SSH failures easier to // parse through re-wording. func Fatal(hostname string, err error) error { out := err.Error() if strings.Contains(out, "Host key verification failed.") { return fmt.Errorf("SSH host key verification failed for %s", hostname) } else if strings.Contains(out, "Could not resolve hostname") { return fmt.Errorf("could not resolve hostname for %s", hostname) } else if strings.Contains(out, "Connection timed out") { return fmt.Errorf("connection timed out for %s", hostname) } else if strings.Contains(out, "Permission denied") { return fmt.Errorf("ssh auth: permission denied for %s", hostname) } else if strings.Contains(out, "Network is unreachable") { return fmt.Errorf("unable to connect to %s, network is unreachable?", hostname) } return err }