无需使用
nc命令“ x / crypto /
ssh”,甚至可以更直接地执行此操作,因为有一种方法可以从远程主机拨打连接并将其显示为
net.Conn。
一旦有了
ssh.Client,您就可以使用该
Dial方法
net.Conn在您和最终主机之间获取虚拟主机。然后,您可以使用将其转换为新
ssh.Conn的
ssh.NewClientConn,并使用创建新
ssh.Client的
ssh.NewClient
// connect to the bastion hostbClient, err := ssh.Dial("tcp", bastionAddr, config)if err != nil { log.Fatal(err)}// Dial a connection to the service host, from the bastionconn, err := bClient.Dial("tcp", serviceAddr)if err != nil { log.Fatal(err)}ncc, chans, reqs, err := ssh.NewClientConn(conn, serviceAddr, config)if err != nil { log.Fatal(err)}sClient := ssh.NewClient(ncc, chans, reqs)// sClient is an ssh client connected to the service host, through the bastion host.


