通过 shell 与 ssh 连接?

Connecting with ssh through the shell?

我正在使用 Go 尝试自动跟踪我所有的 ssh 连接。我在使用 Go 命令时遇到了一些问题 运行。这是我的代码:

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 等同于 "person@192.168.1.1" 显然没有使用那个 ip 但是当我 运行 这个我得到以下错误。

ssh: Could not resolve hostname 192.168.1.1
: nodename nor servname provided, or not known

我可以从我的终端使用 ssh 正常连接。

谢谢!

如果你有

cmd := exec.Command("ssh", string("root@192.168.1.1"))

有效。根据上面的评论,如果你有

cmd := exec.Command("ssh", string("root@192.168.1.1 ")) - 注意额外的 space

然后你就会得到你所描述的错误。

使用 golang.org/x/crypto/ssh 包。

Package documentation.

Nice tutorial to get you started.