func findKeys(sshPubKeyPath string) ([]byte, error) { if sshPubKeyPath != "" { return sshReadPubKey(sshPubKeyPath) } out, err := exec.Command("ssh-add", "-L").Output() if err == nil && len(out) != 0 { return out, nil } var key []byte for _, f := range []string{"id_rsa.pub", "id_dsa.pub"} { key, err = sshReadPubKey(filepath.Join(cfg.HomeDir(), ".ssh", f)) if err == nil { return key, nil } } if err == syscall.ENOENT { err = errors.New("No SSH keys found") } return nil, err }
func (c *SSHCluster) sshDir() string { if runtime.GOOS == "windows" { return filepath.Join(os.Getenv("USERPROFILE"), ".ssh") } return filepath.Join(config.HomeDir(), ".ssh") }