Я работаю с Go, пытаясь автоматизировать отслеживание всех моих ssh-соединений. У меня возникли проблемы с командой Go. Вот мой код:Соединение с ssh через оболочку?
cmd := exec.Command("ssh", string(c.Address))
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
err2 := cmd.Run()
if err2 != nil {
fmt.Print("Disconnected")
}
c.Address эквивалентен «[email protected]» не используется, что ф, очевидно, но когда я запускаю это я получаю следующее сообщение об ошибке.
ssh: Could not resolve hostname 192.168.1.1
: nodename nor servname provided, or not known
Я могу подключиться просто отлично, используя ssh с моего терминала.
Спасибо!
Попробуйте напечатать некоторые отладочный вывод из 'ssh' команды, и сравнивая его и ту же команду из командной строки. – JimB
Кроме того, убедитесь, что c.Address не содержит лишних пробелов или непечатаемых символов. – JimB
Странный. Попробуйте localhost. Не c.Address функция? (устал бывает;). Не связано с разрешением адреса, но кто знает: попробуйте с абсолютным путем к исполняемому файлу ssh, в маловероятном случае, когда ваш PATH имеет к этому какое-то отношение. Какую ОС вы используете? Это может быть полезно знать. – wldsvc