Go 使用现有SSH连接连接到远程主机

Go 使用现有SSH连接连接到远程主机,go,ssh,Go,Ssh,我以前使用的是python。它有一个功能,您可以提供一个已经可用的连接来连接到新主机。我正在查看ssh文档。我看不到任何选项可以做到这一点,不确定我是否必须手动进行一些隧道挖掘 我想要的是使用SSH连接到一台具有auth的机器,然后使用该连接连接到另一台具有与第一台机器不同的auth的机器 ncmConfig := &ssh.ClientConfig{ User: "xyz", HostKeyCallback: ssh.InsecureIgnoreH

我以前使用的是python。它有一个功能,您可以提供一个已经可用的连接来连接到新主机。我正在查看ssh文档。我看不到任何选项可以做到这一点,不确定我是否必须手动进行一些隧道挖掘

我想要的是使用SSH连接到一台具有auth的机器,然后使用该连接连接到另一台具有与第一台机器不同的auth的机器

ncmConfig := &ssh.ClientConfig{
    User:            "xyz",
    HostKeyCallback: ssh.InsecureIgnoreHostKey(),
    Auth: []ssh.AuthMethod{
        ssh.Password("xyz!"),
    },
}

routerConfig := &ssh.ClientConfig{
    User:            "xyz1",
    HostKeyCallback: ssh.InsecureIgnoreHostKey(),
    Auth: []ssh.AuthMethod{
        ssh.Password("xyz2"),
    },
}
ncm := "1.1.1.1"
router := "2.2.2.2
conn, err := ssh.Dial("tcp", ncm+":22", ncmConfig)
if err != nil {
    log.Println(err)
}

# how can I use the conn to connect to a new machine.
conn4是新的连接

conn4是新的连接

conn2, err := conn.Dial("tcp", router+":22")
if err != nil {
    log.Println(err)
}

conn3, chans, reqs, err := ssh.NewClientConn(conn2, router+":22", routerConfig)
if err != nil {
    log.Println(err)
}

conn4 := ssh.NewClient(conn3, chans, reqs)