Pracuję z Go próbując zautomatyzować śledzenie wszystkich moich połączeń ssh. Mam pewne problemy z uruchomieniem polecenia z Go. Tu jest mój kodu:Łączenie z ssh przez powłokę?
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 jest odpowiednikiem „[email protected]2.168.1.1” nie używając że IP oczywiście, ale gdy uruchomię to pojawia się następujący błąd.
ssh: Could not resolve hostname 192.168.1.1
: nodename nor servname provided, or not known
Mogę podłączyć dobrze, używając ssh z mojego terminalu.
Dzięki!
Spróbuj wydrukować jakieś wyjście debugowania z poleceniem 'ssh' i porównując ją to samo polecenie z powłoki. – JimB
Upewnij się również, że c.Address nie zawiera żadnych dodatkowych białych znaków ani niedrukowalnych znaków. – JimB
Dziwny. Spróbuj localhost. Czy c.Address nie jest funkcją? (zmęczenie się dzieje;). Nie ma związku z rozwiązywaniem adresów, ale kto wie: spróbuj z bezwzględną ścieżką do pliku wykonywalnego ssh, w mało prawdopodobnym przypadku, gdy twoja ścieżka dostępu ma z nim coś wspólnego. Z jakiego systemu operacyjnego korzystasz? To może być pomocne wiedzieć. – wldsvc