SSH握手抱怨缺少主机密钥

SSH握手抱怨缺少主机密钥,第1张

SSH握手抱怨缺少主机密钥

您在这里寻找的是:

func getHostKey(host string) (ssh.PublicKey, error) {    file, err := os.Open(filepath.Join(os.Getenv("HOME"), ".ssh", "known_hosts"))    if err != nil {        return nil, err    }    defer file.Close()    scanner := bufio.NewScanner(file)    var hostKey ssh.PublicKey    for scanner.Scan() {        fields := strings.Split(scanner.Text(), " ")        if len(fields) != 3 { continue        }        if strings.Contains(fields[0], host) { var err error hostKey, _, _, _, err = ssh.ParseAuthorizedKey(scanner.Bytes()) if err != nil {     return nil, errors.New(fmt.Sprintf("error parsing %q: %v", fields[2], err)) } break        }    }    if hostKey == nil {        return nil, errors.New(fmt.Sprintf("no hostkey for %s", host))    }    return hostKey, nil}

然后将您的hostKey定义行替换为

hostKey, err := getHostKey("host.com")if err != nil {    log.Fatal(err)}

有关此主题的更多信息:

  • 我从中获取部分代码的官方样本
  • 为什么现在需要hostKey

编辑:还请查看

Anton
有关
golang.org/x/crypto/ssh/knownhosts
包装的以下答案。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5170997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存