我以前在asyncssh中使用python。它具有一项功能,您可以提供一个已经可用的连接来连接到新主机。我正在研究ssh文档。我看不到任何可以执行此技巧的选项,不确定是否需要手动进行一些隧道操作。
我想要的是使用具有auth的SSH连接到一台计算机,然后使用该连接连接到具有与第一台计算机不同的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.
答案 0 :(得分:0)
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)
conn4是新连接。