Photo by Mathew Schwartz on Unsplash
Connecting To SFTP With Go
Simple and insecure way to connect to SFTP server.
My application needs to retrieve data files from remote SFTP server at regular interval. Sometime the files are not available at agreed time. So I need to monitor file availability and notify the person in charge. I wrote a Go script to check those files. Execution of this script and sending notifications is handled by Monit. If you like me to write about Monit, let me know in the comment.
Host Key Verification
HostKeyCallback: ssh.InsecureIgnoreHostKey()
HostKeyCallback is a required attribute. The callback function should return nil if host key is accepted, or error to reject it. This article provides a method for verifying host key using "known_hosts" file.
InsecureIgnoreHostKey is used for convenience sake. It trust all host keys without any sort of verification.
Further Reading
- Operations you can perform on files - pkg.go.dev/github.com/pkg/sftp#Client
- Ready-to-use host key verification functions - pkg.go.dev/golang.org/x/crypto/ssh#HostKeyC..