在SFTP Connection Golang中使用给定的RSA指纹

时间:2017-11-06 13:55:09

标签: go ssh sftp

我正在尝试在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)
} 

0 个答案:

没有答案