I am in the process of trying to write an sftp server in Go and my language knowledge is very limited and I can't seem to find this one answer. I have the RSA fingerprint already given to me to connect to the host but I can't seem to find anyone who gives the fingerprint. Everyone seems to generate the .pem files etc. But I just want to give it the key.
I attemped to just add the fingerprint to the ssh.NewPublicKey() but that didn't seem to work. Does anyone have any references or suggestions? Here's the code below.
I can do this pretty easily in powershell but I'm trying to get away from it and switch over to Golang.
package main
import (
"github.com/pkg/sftp"
"golang.org/x/crypto/ssh"
)
func main() {
addr := "remote.server:00"
hostKey := ssh.NewPublicKey("ssh-rsa 2048 00:11:22:33:44:55:66:77:88:99:00:aa:bb:cc:dd:ee")
config := &ssh.ClientConfig{
User: "username",
Auth: []ssh.AuthMethod{
ssh.Password("password"),
},
HostKeyCallback: ssh.FixedHostKey(hostKey),
}
conn, err := ssh.Dial("tcp", addr, config)
if err != nil {
panic("Failed to dial: " + err.Error())
}
client, err := sftp.NewClient(conn)
if err != nil {
panic("Failed to create client: " + err.Error())
}
// Close connection
defer client.Close()
cwd, err := client.Getwd()
println("Current working directory:", cwd)
}