【问题标题】:GoLang : "No common algorithm for key exchange" errorGoLang:“没有通用的密钥交换算法”错误
【发布时间】:2017-05-30 20:09:02
【问题描述】:

我是 GoLang 的新手,我正在尝试使用 go 连接到远程服务器。但我不断收到以下错误

Failed to dial: ssh: handshake failed: ssh: no common algorithm for key exchange; client offered: [curve2****-sh****@libssh.org ****-sha*-nis****ecdh-sha2-nistp384 ecdh-sha2-nistp**** diffie-hellman-group14-sha1 diffie-hellman-group1-sha1], server offered: [diffie-hellman-group-exchange-sha***]

下面是我用来连接的配置

 config := &ssh.ClientConfig{

    User: user,

    HostKeyCallback: nil,

    Auth: []ssh.AuthMethod{

    publicKey,
    },
}

【问题讨论】:

    标签: go ssh


    【解决方案1】:

    嗯,就像错误所说的那样,客户端和服务器没有任何他们愿意同意的算法,所以他们不能交谈。 Go 提供的六个都是它支持的(在 openssh 提供的 12 个中);服务器只提供 one 不是其中的任何一个。您的选择:

    1. 说服服务器接受更多的KEX算法;它可能支持更多,并且有人只是对其进行了超级限制。
    2. 自己为 x/crypto/ssh 实现 DH Group Exchange,并将补丁发送到上游。
    3. 寻找其他客户。

    【讨论】:

    • 如果可能的话,你能告诉我如何做任何/每一个吗?我对 golang 和网络编程非常陌生,我将不胜感激。谢谢你
    【解决方案2】:

    看看这个question

    我仍在努力解决这个问题,但 VonC 提出了一些有趣的提示来解决它。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2012-05-06
      • 1970-01-01
      • 2015-10-25
      • 2018-10-16
      • 1970-01-01
      • 2018-02-03
      • 2010-12-22
      相关资源
      最近更新 更多