我正在尝试在Go中编写一个sftp服务器,我的语言知识非常有限,我似乎无法找到这个答案。我已经将RSA指纹提供给我以连接到主机,但我似乎找不到任何给出指纹的人。每个人似乎都会生成.pem文件等。但我只是想给它一把钥匙。
我尝试将指纹添加到ssh.NewPublicKey(),但这似乎不起作用。有没有人有任何参考或建议?这是下面的代码。
我可以很容易地在powershell中做到这一点,但我正试图摆脱它并切换到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)
}