2017-07-14 7 views
0

人!私は助けが必要です。私は数分前に作成した既存のsshクライアント上に新しいsftp接続を作成しようとしました。私はできません。とidkなぜ。ここでgolangに存在する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() 
+1

どのような出力/エラーが発生しますか?あなたは何を期待していますか?何を試しましたか? – Knetic

答えて

0

は答えを探す:だけではなく、CONNのクライアントが必要になります。

クライアント、ERR:= ssh.Dial( "TCP"、ADDR、設定)

sftp、err:= sftp.NewClient(クライアント)