You can do it using the Open(path string)
and WriteTo(w io.Writer)
methods from the sftp package (and of course you need an os.File or something similar to write to).
client, err := ssh.Dial("tcp", "192.x.x.x:22", sshConfig)
if err != nil {
panic("Failed to dial: " + err.Error())
}
fmt.Println("Successfully connected to ssh server.")
// open an SFTP session over an existing ssh connection.
sftp, err := sftp.NewClient(client)
if err != nil {
log.Fatal(err)
}
defer sftp.Close()
srcPath := "/tmp/"
dstPath := "C:/temp/"
filename := "test.txt"
// Open the source file
srcFile, err := sftp.Open(srcPath + filename)
if err != nil {
log.Fatal(err)
}
defer srcFile.Close()
// Create the destination file
dstFile, err := os.Create(dstPath + filename)
if err != nil {
log.Fatal(err)
}
defer dstFile.Close()
// Copy the file
srcFile.WriteTo(dstFile)