如何在golang上通过现有ssh连接创建sftp客户端
伙计们!我需要帮助。我试图在几分钟前创建的现有ssh客户端上创建一个新的sftp连接。我不能。我不知道为什么 下面是一个代码饼:如何在golang上通过现有ssh连接创建sftp客户端,go,sftp,Go,Sftp,伙计们!我需要帮助。我试图在几分钟前创建的现有ssh客户端上创建一个新的sftp连接。我不能。我不知道为什么 下面是一个代码饼: config := &ssh.ClientConfig{ User: *loginArg, Auth: []ssh.AuthMethod{ ssh.Password(*passArg), }, HostKeyCallback: func(hostname strin
config := &ssh.ClientConfig{
User: *loginArg,
Auth: []ssh.AuthMethod{
ssh.Password(*passArg),
},
HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
return nil
},
}
addr := fmt.Sprintf("%s:%d", *ipArg, *portArg)
client, err := ssh.Dial("tcp", addr, config)
if err != nil {
fmt.Printf("Failed to dial: %s", err)
}
fmt.Println("Successfully connected to ", *ipArg, ":", *portArg)
session, err := client.NewSession()
if err != nil {
fmt.Printf("Failed to create a new session: %s", err)
}
defer session.Close()
b, err := session.CombinedOutput("/system backup save name=BackUp dont-encrypt=yes") // /system backup save name=BackUp dont-encrypt=yes
if err != nil {
fmt.Printf("Failed to send output command: %s", err)
}
fmt.Print(string(b))
//*******************
var conn *ssh.Client
sftp, err := sftp.NewClient(conn)
//sftp, err := sftp.NewClient(conn) //err
if err != nil {
log.Fatal(err) //fmt.Printf("Failed to create new sftp-client: %s", err)
}
defer sftp.Close()
找到答案:只需要客户端而不是conn: 客户端,错误:=ssh.Dial(“tcp”,地址,配置)
sftp,err:=sftp.NewClient(client)您得到了什么输出/错误?你在期待什么?你试过什么?