Using SFTP with Golang
Learn how to use SFTP with Golang, a popular programming language.
How to use SFTP with Golang
go get golang.org/x/crypto/ssh go get github.com/pkg/sftppackage main import ( "fmt" "golang.org/x/crypto/ssh" "github.com/pkg/sftp" "os" ) func main() { // SFTP connection parameters host := "sftp.example.com" port := 22 user := "your_username" password := "your_password" // Create SSH client configuration config := &ssh.ClientConfig{ User: user, Auth: []ssh.AuthMethod{ ssh.Password(password), }, HostKeyCallback: ssh.InsecureIgnoreHostKey(), } // Connect to the SSH server conn, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", host, port), config) if err != nil { fmt.Println("Failed to connect to SSH server:", err) return } defer conn.Close() // Open SFTP session sftpClient, err := sftp.NewClient(conn) if err != nil { fmt.Println("Failed to open SFTP session:", err) return } defer sftpClient.Close() // Now you can perform SFTP operations using the sftpClient }localFile, err := os.Open("/path/to/local/file.txt") if err != nil { fmt.Println("Failed to open local file:", err) return } defer localFile.Close() remoteFile, err := sftpClient.Create("/path/to/remote/file.txt") if err != nil { fmt.Println("Failed to create remote file:", err) return } defer remoteFile.Close() _, err = io.Copy(remoteFile, localFile) if err != nil { fmt.Println("Failed to upload file:", err) return }remoteFile, err := sftpClient.Open("/path/to/remote/file.txt") if err != nil { fmt.Println("Failed to open remote file:", err) return } defer remoteFile.Close() localFile, err := os.Create("/path/to/local/file.txt") if err != nil { fmt.Println("Failed to create local file:", err) return } defer localFile.Close() _, err = io.Copy(localFile, remoteFile) if err != nil { fmt.Println("Failed to download file:", err) return }
// Close SFTP session sftpClient.Close() // Close SSH connection conn.Close()
Using Golang and SFTP with Couchdrop
Last updated
Was this helpful?