gpt4 book ai didi

go - 如何通过 golang 上现有的 ssh 连接创建 sftp 客户端

转载 作者:数据小太阳 更新时间:2023-10-29 03:24:44 29 4
gpt4 key购买 nike

伙计们!我需要帮助。我试图在几分钟前创建的现有 ssh 客户端上创建一个新的 sftp 连接。我不能。我不知道为什么。

下面是一段代码:

    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()

最佳答案

找到答案:只需要client而不是conn:

客户端,错误:= ssh.Dial("tcp", addr, config)

sftp, err := sftp.NewClient(客户端)

关于go - 如何通过 golang 上现有的 ssh 连接创建 sftp 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45108286/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com